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);
        }
Esempio n. 2
0
        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);
        }