2 using System.Collections.Generic;
4 using System.Security.Claims;
5 using System.Threading.Tasks;
6 using Microsoft.AspNetCore.Identity;
35 return _userProfileRepository.All().Count();
38 public virtual IEnumerable<UserProfile>
GetAll()
40 return _userProfileRepository.All();
45 IEnumerable<UserProfile> users;
50 var department = _departmentRepository.Get(d => d.Id == model.
DepartmentId.Value);
51 users = department != null
62 var currentUser = Get(userPrincipal);
63 var department = _departmentRepository.Get(u => u.Head.Id == currentUser.Id);
74 users = users.Where(u => u.IsApproved);
77 users = users.Where(u => !u.IsApproved);
84 users = users.Where(u => u.FirstName.ToLower().Contains(model.
FirstName.Trim().ToLower()));
89 users = users.Where(u => u.LastName.ToLower().Contains(model.
LastName.Trim().ToLower()));
95 public virtual IEnumerable<UserProfile>
GetAllWhere(Func<UserProfile, bool> predicate)
97 return _userProfileRepository.AllWhere(predicate);
100 public virtual IEnumerable<UserProfile>
GetPage(
int page,
int count)
102 return _userProfileRepository.All().Skip((page - 1) * count).Take(count).ToList();
105 public virtual IEnumerable<UserProfile>
GetPage(IEnumerable<UserProfile> userProfiles,
int page,
int count)
107 return userProfiles.Skip((page - 1) * count).Take(count).ToList();
112 return _userProfileRepository.Get(u => u.UserName == claimsPrincipal.Identity.Name);
117 return _userProfileRepository.Get(
id);
122 return _userProfileRepository.Get(predicate);
129 _userProfileRepository.Create(item);
137 _userProfileRepository.Update(item);
143 _userProfileRepository.Delete(
id);
148 var user = _userProfileRepository.Get(
id);
149 user.IsActive = isActive;
150 _userProfileRepository.Update(user);
155 var user = _userProfileRepository.Get(
id);
156 if (user == null)
return;
157 user.IsApproved = isApproved;
158 _userProfileRepository.Update(user);
163 return _userProfileRepository.Get(
id) != null;
166 public virtual async Task<IdentityResult>
AddToRoleAsync(
UserProfile userProfile,
string roleName, UserManager<UserProfile> userManager)
168 return await userManager.AddToRoleAsync(userProfile, roleName);
173 return await userManager.RemoveFromRoleAsync(userProfile, roleName);
178 return await userManager.IsInRoleAsync(user, roleName);
181 public virtual async Task<string>
ChangePassword(
UserProfile user,
string oldPassword,
string newPassword,
string newPasswordRepeat, UserManager<UserProfile> userManager)
183 string result = null;
186 if (await userManager.CheckPasswordAsync(user, oldPassword))
189 if (newPassword.Equals(newPasswordRepeat))
192 if (!oldPassword.Equals(newPassword))
194 var passwordValidator =
new PasswordValidator<UserProfile>();
197 var validationResult = await passwordValidator.ValidateAsync(userManager, user, newPassword);
198 if (validationResult.Succeeded)
200 await userManager.ChangePasswordAsync(user, oldPassword, newPassword);
204 result = validationResult.ToString();
209 result =
"New password must differ from an old one";
214 result =
"Repeated password does not mach a new one";
219 result =
"Old password is incorrect";
230 return isTeacher && !(isHead || isAdmin);
235 var user = _userProfileRepository.Get(
id);
236 ICollection<Publication> result = null;
239 result = user.UserProfilesPublications.Select(item => item.Publication).ToList();
247 var user = _userProfileRepository.Get(
id);
248 ICollection<Grant> result = null;
251 result = user.UserProfilesGrants.Select(item => item.Grant).ToList();
259 var user = _userProfileRepository.Get(
id);
260 ICollection<ScientificWork> result = null;
263 result = user.UserProfilesScientificWorks.Select(item => item.ScientificWork).ToList();
271 var user = _userProfileRepository.Get(
id);
272 ICollection<Article> result = null;
275 result = user.UserProfilesArticles.Select(item => item.Article).ToList();
283 var user = _userProfileRepository.Get(
id);
284 ICollection<ReportThesis> result = null;
287 result = user.UserProfilesReportTheses.Select(item => item.ReportThesis).ToList();
295 var user = _userProfileRepository.Get(
id);
296 ICollection<ScientificInternship> result = null;
299 result = user.UserProfilesScientificInternships.Select(item => item.ScientificInternship).ToList();
307 var user = _userProfileRepository.Get(
id);
308 IEnumerable<Review> result = null;
311 result = _reviewRepository.AllWhere(r => r.Reviewer.Id == user.Id);
314 return result?.ToList();
319 var user = _userProfileRepository.Get(
id);
320 ICollection<PatentLicenseActivity> result = null;
323 result = user.AuthorsPatentLicenseActivities.Select(item => item.PatentLicenseActivity).ToList();
331 var user = _userProfileRepository.Get(
id);
332 ICollection<PatentLicenseActivity> result = null;
335 result = user.ApplicantsPatentLicenseActivities.Select(item => item.PatentLicenseActivity).ToList();
343 var user = _userProfileRepository.Get(
id);
344 IEnumerable<ScientificConsultation> result = null;
347 result = _scientificConsultationRepository.AllWhere(sc => sc.Guide.Id == user.Id);
350 return result?.ToList();
virtual ICollection< PatentLicenseActivity > GetUserPatentLicenseActivitiesAsApplicant(Guid id)
const string Administrator
virtual UserProfile Get(Func< UserProfile, bool > predicate)
virtual IEnumerable< UserProfile > GetPage(IEnumerable< UserProfile > userProfiles, int page, int count)
virtual void SetActiveById(Guid id, bool isActive)
UserProfileService(ScientificReportDbContext context)
virtual ICollection< ReportThesis > GetUserReportTheses(Guid id)
virtual ICollection< Article > GetUserArticles(Guid id)
virtual ICollection< ScientificWork > GetUserScientificWorks(Guid id)
virtual ICollection< Review > GetUserReviews(Guid id)
virtual IEnumerable< UserProfile > GetAll()
virtual async Task< IdentityResult > RemoveFromRoleAsync(UserProfile userProfile, string roleName, UserManager< UserProfile > userManager)
const string HeadOfDepartment
virtual UserProfile GetById(Guid id)
virtual ICollection< ScientificInternship > GetUserScientificInternships(Guid id)
virtual ICollection< Grant > GetUserGrants(Guid id)
virtual async Task< string > ChangePassword(UserProfile user, string oldPassword, string newPassword, string newPasswordRepeat, UserManager< UserProfile > userManager)
virtual UserProfile Get(ClaimsPrincipal claimsPrincipal)
ICollection< ScientificConsultation > GetUserScientificConsultations(Guid id)
virtual IEnumerable< UserProfile > GetAllWhere(Func< UserProfile, bool > predicate)
virtual void SetApproved(Guid id, bool isApproved)
virtual void CreateItem(UserProfile item)
virtual void DeleteById(Guid id)
virtual ICollection< PatentLicenseActivity > GetUserPatentLicenseActivitiesAsAuthor(Guid id)
virtual async Task< bool > IsTeacherOnlyAsync(UserProfile user, UserManager< UserProfile > userManager)
virtual async Task< IdentityResult > AddToRoleAsync(UserProfile userProfile, string roleName, UserManager< UserProfile > userManager)
virtual ICollection< Publication > GetUserPublications(Guid id)
virtual bool UserExists(Guid id)
virtual IEnumerable< UserProfile > Filter(UserProfileIndexModel model, ClaimsPrincipal userPrincipal, bool userIsAdmin)
IsApprovedOption IsApproved
virtual async Task< bool > IsInRoleAsync(UserProfile user, string roleName, UserManager< UserProfile > userManager)
virtual IEnumerable< UserProfile > GetPage(int page, int count)
virtual void UpdateItem(UserProfile item)