public UserSessionModel Create(User user, IEnumerable <OrganizationRoleUser> orgRoleUsers, IEnumerable <Organization> organizations, IEnumerable <Role> roles, IEnumerable <File> files, MediaLocation mediaLocation) { var userSessionModel = new UserSessionModel(); userSessionModel.UserId = user.Id; userSessionModel.FirstName = user.Name.FirstName; userSessionModel.LastName = user.Name.LastName; userSessionModel.UserName = user.UserLogin.UserName; var organizationRoleUserModels = _organizationRoleUserModelFactory.CreateMulti(user, orgRoleUsers, organizations, roles, files, mediaLocation); userSessionModel.AvailableOrganizationRoles = organizationRoleUserModels.ToArray(); userSessionModel.CurrentOrganizationRole = organizationRoleUserModels.Where(x => x.IsDefault).FirstOrDefault(); return(userSessionModel); }
public UserEditModel Get(long id) { var user = _userRepository.GetUser(id); var orgRoles = _orgRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(user.Id); var orgs = _organizationRepository.GetAllOrganizationsforUser(user.Id); var roles = _roleRepository.GetAll(); var userEditModel = Mapper.Map <User, UserEditModel>(user); userEditModel.UsersRoles = _organizationRoleUserModelFactory.CreateMulti(user, orgRoles, orgs, roles, null, null); var defaultRole = userEditModel.UsersRoles.FirstOrDefault(x => x.IsDefault); if (defaultRole != null) { var role = _roleRepository.GetByRoleId(defaultRole.RoleId); if (user.UserLogin.IsTwoFactorAuthrequired == null) { userEditModel.IsTwoFactorAuthrequired = role.IsTwoFactorAuthrequired; userEditModel.OverRideTwoFactorAuthrequired = false; } else { userEditModel.IsTwoFactorAuthrequired = user.UserLogin.IsTwoFactorAuthrequired.Value; if (user.UserLogin.IsTwoFactorAuthrequired.Value) { userEditModel.OverRideTwoFactorAuthrequired = true; } else { userEditModel.OverRideTwoFactorAuthrequired = role.IsTwoFactorAuthrequired; } } } foreach (var organizationRoleUser in orgRoles) { var roleId = GetParentRoleIdByRoleId(organizationRoleUser.RoleId); switch (roleId) { case (long)Roles.Technician: var technician = _technicianRepository.GetTechnician(organizationRoleUser.Id); userEditModel.TechnicianProfile = Mapper.Map <Technician, TechnicianModel>(technician); break; case (long)Roles.MedicalVendorUser: var states = _stateRepository.GetAllStates(); var physician = _physicianRepository.GetPhysician(organizationRoleUser.Id); userEditModel.PhysicianProfile = Mapper.Map <Physician, PhysicianModel>(physician); if (physician.AuthorizedStateLicenses != null && physician.AuthorizedStateLicenses.Count() > 0) { userEditModel.PhysicianProfile.Licenses = _physicianLicenseModelFactory.CreateMultiple(physician.AuthorizedStateLicenses, states); } break; case (long)Roles.CorporateAccountCoordinator: var accountCoordinator = _accountCoordinatorProfileRepository.GetAccountCoordinatorProfile(organizationRoleUser.Id); userEditModel.AccountCoordinatorProfile = Mapper.Map <AccountCoordinatorProfile, AccountCoordinatorProfileModel>(accountCoordinator); break; /*case (long)Roles.CallCenterRep: * var callCenterRepProfile = _callCenterRepProfileRepository.Get(organizationRoleUser.Id); * userEditModel.CallCenterAgentProfile = new CallCenterAgentProfileModel { DialerUrl = callCenterRepProfile != null ? callCenterRepProfile.DialerUrl : "" }; * break;*/ } } foreach (var usersRole in userEditModel.UsersRoles) { if (usersRole.CheckRole(usersRole.RoleId)) { var callCenterRepProfile = _callCenterRepProfileRepository.Get(usersRole.OrganizationRoleUserId); usersRole.DialerUrl = callCenterRepProfile != null && !string.IsNullOrEmpty(callCenterRepProfile.DialerUrl) ? callCenterRepProfile.DialerUrl : string.Empty; } } var userNpiInfo = _userNpiInfoRepository.Get(id); if (userNpiInfo != null) { userEditModel.Npi = userNpiInfo.Npi ?? string.Empty; userEditModel.Credential = userNpiInfo.Credential ?? string.Empty; } else { userEditModel.Npi = string.Empty; userEditModel.Credential = string.Empty; } var systemUserInfo = _systemUserInfoRepository.Get(id); if (systemUserInfo != null) { userEditModel.EmployeeId = systemUserInfo.EmployeeId; } return(userEditModel); }