public UserSessionModel GetUserSessionModel(string userName) { var user = _userRepository.GetUser(_userLoginRepository.GetByUserName(userName).Id); var orgRoles = _organizationRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(user.Id); var orgs = _organizationRepository.GetAllOrganizationsforUser(user.Id); var files = orgs.Where(o => o.LogoImageId > 0).Select(o => _fileRepository.GetById(o.LogoImageId)).ToArray(); var mediaLocation = _mediaRepository.GetOrganizationLogoImageFolderLocation(); var roles = _roleRepository.GetAll(); return(_userSessionModelFactory.Create(user, orgRoles, orgs, roles, files, mediaLocation)); }
public void DeactivateAllOrganizationRolesForUser() { _organizationRoleUserRepository.DeactivateAllOrganizationRolesForUser(VAILD_USER_ID); var orgRoles = _organizationRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(VAILD_USER_ID); Assert.AreEqual(0, orgRoles.Length); }
public string DownloadZipFile(MediaLocation mediaLocation, string csvfileName, long userId, ILogger logger) { var csvFilePath = mediaLocation.PhysicalPath + csvfileName; var fileName = string.Empty; try { var isPinRequired = false; var user = _userRepository.GetUser(userId); var orgRoles = _organizationRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(userId); var defaultRole = orgRoles.FirstOrDefault(oru => oru.RoleId == (long)user.DefaultRole); if (defaultRole != null) { Role role = _roleRepository.GetByRoleId(defaultRole.RoleId); isPinRequired = role.IsPinRequired; } var password = ""; if (isPinRequired) { var userSetting = _loginSettingRepository.Get(userId); if (userSetting != null) { password = userSetting.DownloadFilePin; } } string zipFilePath = _zipHelper.CreateZipOfSingleFile(csvFilePath, password); fileName = Path.GetFileName(zipFilePath); if (fileName == null || fileName.IndexOfAny(Path.GetInvalidFileNameChars()) != -1) { throw new InvalidFileNameException(); } } finally { try { DirectoryOperationsHelper.Delete(csvFilePath); } catch (Exception ex) { logger.Error("exception Message : " + ex.Message + " Stack Trace :" + ex.StackTrace); } } return(fileName); }
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); }
public ActionResult Index(UserLoginModel userLoginModel, string returnUrl) { if (!ModelState.IsValid) { return(View(userLoginModel)); } bool isValid = _loginRepository.ValidateUser(userLoginModel.UserName, userLoginModel.Password); if (isValid) { try { var userLogin = _loginRepository.GetByUserName(userLoginModel.UserName); var user = _userRepository.GetUser(userLogin.Id); var orgRoles = _organizationRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(user.Id); if (orgRoles.Any(oru => oru.RoleId == (long)Roles.Customer) && user.DefaultRole == Roles.Customer) { var customer = _customerRepository.GetCustomerByUserId(user.Id); if (!string.IsNullOrEmpty(customer.Tag)) { var account = _corporateAccountRepository.GetByTag(customer.Tag); if (account != null && !account.AllowCustomerPortalLogin) { userLoginModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Unable to login in. Please contact " + _settings.SupportEmail + " OR call us at " + _settings.PhoneTollFree); return(View(userLoginModel)); } } } var userName = userLoginModel.UserName; FormsAuthentication.SetAuthCookie(userName, true); _sessionContext.UserSession = _loginService.GetUserSessionModel(userName); _sessionContext.LastLoggedInTime = userLogin.LastLogged.ToString(); if (_sessionContext.UserSession.CurrentOrganizationRole == null) { userLoginModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage( "Your default role has been removed. Please contact your administrator."); return(View(userLoginModel)); } Role role = null; var isTwoFactorAuthrequired = true; var useOtpSms = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.OtpNotificationMediumSms); var useOtpEmail = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.OtpNotificationMediumEmail); var useOtpByGoogleAuthenticator = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.OtpByGoogleAuthenticator); var isPinRequired = false; if (useOtpSms == "True" || useOtpEmail == "True" || useOtpByGoogleAuthenticator == "True") { var defaultRole = orgRoles.FirstOrDefault(oru => oru.RoleId == (long)user.DefaultRole); if (defaultRole != null) { role = _roleRepository.GetByRoleId(defaultRole.RoleId); isPinRequired = role.IsPinRequired; } if (userLogin.IsTwoFactorAuthrequired == null) { if (defaultRole != null) { isTwoFactorAuthrequired = role.IsTwoFactorAuthrequired; } } else { isTwoFactorAuthrequired = userLogin.IsTwoFactorAuthrequired.Value; } } else { isTwoFactorAuthrequired = false; } if (isTwoFactorAuthrequired || isPinRequired) { var loginSettings = _loginSettingRepository.Get(_sessionContext.UserSession.UserId); if (loginSettings == null || loginSettings.IsFirstLogin) { TempData["IsTwoFactorAuthrequired"] = isTwoFactorAuthrequired; return(RedirectToAction("Setup")); } else if (isPinRequired && loginSettings.DownloadFilePin == "") { TempData["IsTwoFactorAuthrequired"] = isTwoFactorAuthrequired; TempData["setPinOnly"] = true; return(RedirectToAction("Setup")); } if (isTwoFactorAuthrequired) { var isSafe = false; var isSafeAllowed = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.AllowSafeComputerRemember); if (isSafeAllowed == "True") { var browserName = Request.Browser.Browser + " " + Request.Browser.Version; var requestingIp = Request.UserHostAddress; var safeComputer = new SafeComputerHistory() { BrowserType = browserName, ComputerIp = requestingIp, DateCreated = DateTime.Now, IsActive = true, UserLoginId = user.Id }; isSafe = _safeComputerHistoryService.IsSafe(safeComputer); } if (!isSafe) { if (loginSettings.AuthenticationModeId == (long)AuthenticationMode.Sms) { if (useOtpSms == "True") { return(RedirectToAction("Otp")); } TempData["IsTwoFactorAuthrequired"] = true; TempData["IsOnGlobalSettingChange"] = true; return(RedirectToAction("Setup")); } if (loginSettings.AuthenticationModeId == (long)AuthenticationMode.Email) { if (useOtpEmail == "True") { return(RedirectToAction("Otp")); } TempData["IsTwoFactorAuthrequired"] = true; TempData["IsOnGlobalSettingChange"] = true; return(RedirectToAction("Setup")); } if (loginSettings.AuthenticationModeId == (long)AuthenticationMode.BothSmsEmail) { if (useOtpSms == "True" || useOtpEmail == "True") { return(RedirectToAction("Otp")); } TempData["IsTwoFactorAuthrequired"] = true; TempData["IsOnGlobalSettingChange"] = true; return(RedirectToAction("Setup")); } if (loginSettings.AuthenticationModeId == (long)AuthenticationMode.AuthenticatorApp) { return(RedirectToAction("Authenticator")); } } } } return(GoToDashboard(_sessionContext.UserSession.UserId, returnUrl)); } catch (Exception ex) { _logger.Error("Error: Message: " + ex.Message + "\n Stack trace:" + ex.StackTrace); userLoginModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("System Error: Unable to login in. Please contact support."); return(View(userLoginModel)); } } //not logged in. return(View(GetLoginFailureMessage(userLoginModel))); }
protected void DownloadZipFile(MediaLocation mediaLocation, string csvfileName) { var csvFilePath = mediaLocation.PhysicalPath + csvfileName; var response = Response; try { if (_sessionContext == null || _sessionContext.UserSession == null) { _logger.Error("User Session is null while downloading report file: " + csvFilePath); throw new Exception(); } var userId = _sessionContext.UserSession.UserId; var isPinRequired = false; var user = _userRepository.GetUser(userId); var orgRoles = _organizationRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(userId); var defaultRole = orgRoles.FirstOrDefault(oru => oru.RoleId == (long)user.DefaultRole); if (defaultRole != null) { Role role = _roleRepository.GetByRoleId(defaultRole.RoleId); isPinRequired = role.IsPinRequired; } var password = ""; if (isPinRequired) { var userSetting = _loginSettingRepository.Get(userId); if (userSetting != null) { password = userSetting.DownloadFilePin; } } var zipFilePath = _zipHelper.CreateZipOfSingleFile(csvFilePath, password); var fileName = Path.GetFileName(zipFilePath); if (fileName == null || fileName.IndexOfAny(Path.GetInvalidFileNameChars()) != -1) { throw new InvalidFileNameException(); } response.Clear(); response.ClearHeaders(); response.ContentType = "application/zip"; response.AddHeader("content-disposition", "attachment; filename=" + HttpUtility.HtmlEncode(fileName.Replace(Environment.NewLine, ""))); response.Cache.SetCacheability(HttpCacheability.NoCache); var buffer = DirectoryOperationsHelper.ReadAllBytes(zipFilePath); response.BinaryWrite(buffer); } catch (Exception ex) { _logger.Error("Error while creating zip file. CSV File Name : " + csvFilePath + ". Message: " + ex.Message + " \n\t Stack Trace:" + ex.StackTrace); } finally { try { DirectoryOperationsHelper.Delete(csvFilePath); } catch (Exception exception) { _logger.Error("Error while deleting file. Name : " + csvFilePath + ". Message: " + exception.Message + " \n\t Stack Trace:" + exception.StackTrace); } response.End(); } }
public ActionResult Edit(UserEditModel userEditModel) { try { if (userEditModel.UsersRoles != null && userEditModel.UsersRoles.Count() > 0) { if (!userEditModel.UsersRoles.Any(ur => ur.GetSystemRoleId == (long)Roles.MedicalVendorUser)) { userEditModel.PhysicianProfile = null; } } var userValidator = IoC.Resolve <UserEditModelValidator>(); var result = userValidator.Validate(userEditModel); if (result.IsValid)//ModelState.IsValid { if (!string.IsNullOrEmpty(userEditModel.Password) && _passwordChangelogService.IsPasswordRepeated(userEditModel.Id, userEditModel.Password)) { SetTestsAndPodsForPhysicianProfile(userEditModel); var nonRepeatCount = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.PreviousPasswordNonRepetitionCount); userEditModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("New password can not be same as last " + nonRepeatCount + " password(s). Please enter a different password."); return(View(userEditModel)); } if (!string.IsNullOrEmpty(userEditModel.TechnicianProfile.Pin) && _pinChangelogService.IsPinRepeated(userEditModel.TechnicianProfile.TechnicianId, userEditModel.TechnicianProfile.Pin.Encrypt())) { SetTestsAndPodsForPhysicianProfile(userEditModel); var nonRepeatPinCount = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.PreviousPinNonRepetitionCount); userEditModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("New Pin can not be same as last " + nonRepeatPinCount + " pin(s). Please enter a different Pin."); return(View(userEditModel)); } try { if (userEditModel.PhysicianProfile != null) { if (Request.Files.Count > 0) { var signatureFile = UploadFile(Request.Files[0], userEditModel.FullName.ToString()); if (signatureFile != null) { signatureFile.Id = userEditModel.PhysicianProfile.SignatureFile.Id; userEditModel.PhysicianProfile.SignatureFile = signatureFile; } else if (userEditModel.PhysicianProfile.SignatureFile != null && userEditModel.PhysicianProfile.SignatureFile.Id > 0) { userEditModel.PhysicianProfile.SignatureFile = _fileRepository.GetById(userEditModel.PhysicianProfile.SignatureFile.Id); } else { userEditModel.PhysicianProfile.SignatureFile = null; } } } var currentRoles = _organizationRoleUserRepository.GetOrganizationRoleUserCollectionforaUser(userEditModel.Id).Where(x => x.RoleId == (long)Roles.CallCenterRep || x.RoleId == (long)Roles.Technician || x.RoleId == (long)Roles.NursePractitioner || x.RoleId == (long)Roles.Coder || x.RoleId == (long)Roles.MedicalVendorUser).Select(x => x.RoleId); var newRoles = userEditModel.UsersRoles.Where(x => x.RoleId == (long)Roles.CallCenterRep || x.RoleId == (long)Roles.Technician || x.RoleId == (long)Roles.NursePractitioner || x.RoleId == (long)Roles.Coder || x.RoleId == (long)Roles.MedicalVendorUser).Select(x => x.RoleId); List <string> removedRoleAlias = new List <string>(); var removedRoles = currentRoles.Select(x => x).Except(newRoles).ToList(); removedRoleAlias = _roleRepository.GetByRoleIds(removedRoles).Select(x => x.Alias).ToList(); userEditModel = _userService.Save(userEditModel); ExportToMedicare(userEditModel, removedRoleAlias); userEditModel.Password = null; userEditModel.ConfirmPassword = null; if (userEditModel.PhysicianProfile != null && userEditModel.PhysicianProfile.SignatureFile != null) { var signatureMediaFileLocation = _mediaRepository.GetPhysicianSignatureMediaFileLocation(); userEditModel.PhysicianProfile.SignatureFile.Path = signatureMediaFileLocation.Url + userEditModel.PhysicianProfile.SignatureFile.Path; } SetTestsAndPodsForPhysicianProfile(userEditModel); userEditModel.FeedbackMessage = FeedbackMessageModel.CreateSuccessMessage(string.Format("The user {0} was saved successfully.", userEditModel.FullName)); return(View(userEditModel)); } catch (InvalidAddressException) { SetTestsAndPodsForPhysicianProfile(userEditModel); userEditModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Unable to save this address. Please check the city, state and zip are valid."); return(View(userEditModel)); } catch (Exception exception) { SetTestsAndPodsForPhysicianProfile(userEditModel); userEditModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("System Error:" + exception.Message); return(View(userEditModel)); } } SetTestsAndPodsForPhysicianProfile(userEditModel); return(View(userEditModel)); } catch { SetTestsAndPodsForPhysicianProfile(userEditModel); return(View(userEditModel)); } }