public async Task <int> GetRoleByUserProfileId(int userProfileId) { var specs = new GetUserProfileWithDetailsByIdSpecification(userProfileId); var userProfile = await _unitOfWork.Repository <UserProfile>().GetEntityWithSpec(specs); var role = await _userManager.GetRolesAsync(userProfile.AppUser); var roleValue = role.First().ToLower(); return((int)Enum.Parse <UserRole>(roleValue)); }
public async Task <ValidationOutputDto> ValidateManagerIdGetInput(int managerId) { //Check if Manager UserprofileId exists var userManagerSpecs = new GetUserProfileWithDetailsByIdSpecification(managerId); var userprofileManager = await _unitOfWork.Repository <UserProfile>().GetEntityWithSpec(userManagerSpecs); if (userprofileManager == null) { return new ValidationOutputDto { IsSuccess = false, Message = "Manager is not existing.", StatusCode = 400 } } ; //Check if Role is Manager var roleManager = (await _userManager.GetRolesAsync(userprofileManager.AppUser)).First(); if (roleManager != UserRole.manager.ToString()) { return new ValidationOutputDto { IsSuccess = false, Message = "The Manager Id provided is not assigned as role Manager.", StatusCode = 400 } } ; return(new ValidationOutputDto { IsSuccess = true, Message = string.Empty, StatusCode = 200 }); }