//public UserLoginService() // : this(new UserLoginRepository(), new UserRepository<User>(), new OrganizationRoleUserRepository(), ) //{ } public void ValidateUser(string userName, string password) { try { var userLogin = _userLoginRepository.GetByUserName(userName); if (userLogin != null && userLogin.Locked && userLogin.LastLoginAttemptAt.HasValue && userLogin.LastLoginAttemptAt.Value.AddMinutes(60) > DateTime.Now && OnLoginAccountLocked != null) { OnLoginAccountLocked(); } if (userLogin != null && userLogin.Password == password && OnLoginSuccessful != null) { OnLoginSuccessful(userLogin.Id, true); } if ((userLogin == null || userLogin.Password != password) && OnLoginUnuccessful != null) { OnLoginUnuccessful(userLogin != null ? userLogin.Id : 0, false); } } catch (Exception) { if (OnLoginUnuccessful != null) { OnLoginUnuccessful(0, false); } } }
public void PollForCallParsing() { try { _logger.Info("Entering In Vici Dialer Parsing..."); var timeOfDay = DateTime.Now; if (_isDevEnvironment || (timeOfDay.TimeOfDay < new TimeSpan(1, 0, 0)) || (timeOfDay.TimeOfDay > new TimeSpan(2, 0, 0))) { //Check for file var listModel = Get <IEnumerable <ViciDialerCallModel> >(_settings.ViciDialerApiUrl); _logger.Info("Getting data from API."); if (listModel.IsNullOrEmpty()) { _logger.Info("No data found to parse."); return; } long orgRoleUserId = 1; var ViciUser = _userLoginRepository.GetByUserName(_settings.ViciDialerUserName); if (ViciUser != null) { var organizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUsermodel(ViciUser.Id, (long)Roles.CallCenterRep); if (organizationRoleUser != null) { orgRoleUserId = organizationRoleUser.OrganizationRoleUserId; } } foreach (var model in listModel) { try { _callUploadService.SaveViciDialerCall(model, orgRoleUserId); } catch (Exception ex) { _logger.Error(string.Format("Error for Customer Id: {0}. Message: {2}. \n Stack Trace{3}", model.CustomerId, ex.Message, ex.StackTrace)); } } } } catch (Exception ex) { _logger.Error("Vici Dialer Parsing Exception Message: " + ex.Message + "\n Stack Trace:" + ex.StackTrace); } }
public UserLoginResponseModel ValidateUser(UserLoginModel userLoginModel, string guid) { var onlineRequestValidationModel = _tempcartService.ValidateOnlineRequest(guid); var model = new UserLoginResponseModel() { RequestValidationModel = onlineRequestValidationModel }; if (onlineRequestValidationModel.RequestStatus != OnlineRequestStatus.Valid) { return(model); } if (!ModelState.IsValid) { throw new Exception("Please enter a valid Username/Password!"); } var isValid = _userLoginRepository.ValidateUser(userLoginModel.UserName, userLoginModel.Password); if (!isValid) { GetLoginFailureMessage(userLoginModel); } var userLogin = _userLoginRepository.GetByUserName(userLoginModel.UserName); var customer = _customerRepository.GetCustomerByUserId(userLogin.Id); model = new UserLoginResponseModel { CustomerId = customer.CustomerId, CustomerName = customer.NameAsString, IsValid = true, Message = "", RequestValidationModel = onlineRequestValidationModel }; return(model); }
public void PollForCallParsing() { try { _logger.Info("Entering In GMS Dialer Parsing "); var timeOfDay = DateTime.Now; if (_isDevEnvironment || (timeOfDay.TimeOfDay < new TimeSpan(1, 0, 0)) || (timeOfDay.TimeOfDay > new TimeSpan(2, 0, 0))) { //Check for file _logger.Info("Getting files"); var sourceLocation = _settings.GmsDialerFilePath; var dialerFiles = DirectoryOperationsHelper.GetFiles(sourceLocation, "*.csv"); if (dialerFiles.IsNullOrEmpty()) { _logger.Info("No dialer file found at " + sourceLocation); return; } //move file to media location var mediaLocation = _mediaRepository.GetGMSDialerMediaFileLocation(); var archiveMediaLoation = _mediaRepository.GetGMSDialerArchiveMediaLocation(); foreach (var dialerFile in dialerFiles) { var fileInfo = new FileInfo(dialerFile); DirectoryOperationsHelper.Move(dialerFile, mediaLocation.PhysicalPath + fileInfo.Name); } long orgRoleUserId = 1; var gmsUser = _userLoginRepository.GetByUserName(_settings.GmsUserName); if (gmsUser != null) { var organizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUsermodel(gmsUser.Id, (long)Roles.CallCenterRep); if (organizationRoleUser != null) { orgRoleUserId = organizationRoleUser.OrganizationRoleUserId; } } //parse file var files = DirectoryOperationsHelper.GetFiles(mediaLocation.PhysicalPath, "*.csv"); foreach (var file in files) { try { var fileInfo = new FileInfo(file); var callTable = _csvReader.ReadWithTextQualifier(file); if (callTable.Rows.Count == 0) { _logger.Info(string.Format("No data for file FileName:{0}.", file)); return; } var missingColumnNames = _gmsCallParserHelper.CheckForColumns(callTable.Rows[0]); if (!string.IsNullOrEmpty(missingColumnNames)) { _logger.Info(string.Format("Invalid file FileName:{0}. Missing headers: {1}", file, missingColumnNames)); return; } foreach (DataRow row in callTable.Rows) { var model = _gmsCallParserHelper.GetGmsDialerCallModel(row); try { _callUploadService.SaveGmsDialerCall(model, orgRoleUserId, _logger); } catch (Exception ex) { _logger.Error(string.Format("Error for Customer Id: {0} in file: {1}. Message: {2}. \n Stack Trace{3}", model.CustomerId, fileInfo.Name, ex.Message, ex.StackTrace)); } } //move to archive location DirectoryOperationsHelper.Move(file, archiveMediaLoation.PhysicalPath + fileInfo.Name); } catch (Exception ex) { _logger.Error(string.Format("Error for file {0}. Message: {1} \n Stack Trace : {2}", file, ex.Message, ex.StackTrace)); } } } } catch (Exception ex) { _logger.Error("GMSDialerParsing Exception Message: " + ex.Message + "\n Stack Trace:" + ex.StackTrace); } }
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))); }