/// <summary> /// Saves the registration information. /// </summary> /// <param name="registrationInfo">The registration information.</param> /// <param name="registrationId">The registration identifier.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">registrationInfo</exception> /// string SaveRegistrationInfo(IRegistrationView registrationInfo, out int registrationId); public string SaveRegistrationInfo(IUserAgentofDeductionView registrationInfo, out int registrationId) { if (registrationInfo == null) { throw new ArgumentNullException(nameof(registrationInfo)); } var result = string.Empty; var newRecord = new UserRegistration { Password = registrationInfo.Password, FirstName = registrationInfo.FirstName, Email = registrationInfo.Email, DateVerified = DateTime.Now, LastName = registrationInfo.LastName, IsActive = registrationInfo.IsActive, PhoneNumber = registrationInfo.PhoneNumber, DateCreated = DateTime.Now, IsUserVerified = false }; using ( var dbContext = (PitalyticsEntities)dbContextFactory.GetDbContext()) { dbContext.UserRegistrations.Add(newRecord); dbContext.SaveChanges(); } registrationId = newRecord.UserRegistrationId; return(result); ; }
/// <summary> /// Gets the updated registration view. /// </summary> /// <param name="userAgentofDeductionView">The user agentof deduction view.</param> /// <param name="processingMessage">The processing message.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">userAgentofDeductionView</exception> public IUserAgentofDeductionView GetUpdatedRegistrationView(IUserAgentofDeductionView userAgentofDeductionView, string processingMessage) { if (userAgentofDeductionView == null) { throw new ArgumentNullException(nameof(userAgentofDeductionView)); } var industry = this.generalRepository.GetIndustry().Where(x => x.IsActive = true).ToList(); return(this.accountViewsModelFactory.CreateUpdatedRegistraionView(userAgentofDeductionView, processingMessage, industry)); }
/// <summary> /// Creates the updated registraion view. /// </summary> /// <param name="registrationInfo">The registration information.</param> /// <param name="processingMessage">The processing message.</param> /// <param name="aboutUsSourceCollection">The about us source collection.</param> /// <returns></returns> public IUserAgentofDeductionView CreateUpdatedRegistraionView(IUserAgentofDeductionView userAgentofDeductionView, string processingMessage, IList <IIndustry> industries) { if (userAgentofDeductionView == null) { throw new ArgumentNullException(nameof(userAgentofDeductionView)); } var industryDDl = GetIndustryDropDownList.GetIndustry(industries, userAgentofDeductionView.IndustryId); userAgentofDeductionView.ProcessingMessage = processingMessage; userAgentofDeductionView.IndustryList = industryDDl; return(userAgentofDeductionView); }
/// <summary> /// Saves the agentof deduction information. /// </summary> /// <param name="agentOfDeductionView">The agent of deduction view.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">agentOfDeductionView</exception> public string saveAgentofDeductionInfo(IUserAgentofDeductionView agentOfDeductionView, int registrationId) { if (agentOfDeductionView == null) { throw new ArgumentNullException(nameof(agentOfDeductionView)); } var result = string.Empty; var newRecord = new AgentOfDeductionInfo { BVN = agentOfDeductionView.BVN, CACRegNo = agentOfDeductionView.CACRegNo, CompanyName = agentOfDeductionView.CompanyName, DateCreated = DateTime.Now, FIRS_TIN = agentOfDeductionView.FIRS_TIN, IndustryId = agentOfDeductionView.IndustryId, IsActive = true, IsVerified = false, UserRegistrationId = registrationId, WebsiteAddress = agentOfDeductionView.WebsiteAddress, }; try { using ( var dbContext = (PitalyticsEntities)dbContextFactory.GetDbContext()) { dbContext.AgentOfDeductionInfoes.Add(newRecord); dbContext.SaveChanges(); } } catch (Exception e) { throw new Exception($"Save Agent of Deduction - {e.Message} , {(e.InnerException != null ? e.InnerException.Message : "")}"); } return(result); ; }
/// <summary> /// Processes the registration information. /// </summary> /// <param name="registrationInfo">The registration information.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">registrationInfo</exception> public IUserAgentofDeductionView ProcessAgentofDeductionRegistrationInfo(IUserAgentofDeductionView userAgentofDeductionView) { if (userAgentofDeductionView == null) { throw new System.ArgumentNullException(nameof(userAgentofDeductionView)); } var processingMessage = string.Empty; var isDataOkay = true; //checks if similar email does exist in the database var registrationData = this.accountRepository.GetRegistrationByEmail(userAgentofDeductionView.Email); var IsRecordExist = (registrationData != null); if (IsRecordExist) { isDataOkay = false; processingMessage = Messages.IsEmailExist; } else { var companyData = this.accountRepository.GetAgentOfDeductionByCacNumber(userAgentofDeductionView.CACRegNo); if (companyData != null) { isDataOkay = false; processingMessage = Messages.CompanyExist; } } var industry = this.generalRepository.GetIndustry().Where(x => x.IsActive == true).ToList(); var returnViewModel = this.accountViewsModelFactory.CreateUpdatedRegistraionView(userAgentofDeductionView, processingMessage, industry); if (!isDataOkay) { return(returnViewModel); } //save data to database var registrationId = 0; userAgentofDeductionView.Password = this.encryptionService.Encrypt(userAgentofDeductionView.Password); userAgentofDeductionView.FirstName = userAgentofDeductionView.FirstName == null ? userAgentofDeductionView.CompanyName : userAgentofDeductionView.FirstName; userAgentofDeductionView.IsActive = false; var savedData = this.accountRepository.SaveRegistrationInfo(userAgentofDeductionView, out registrationId); var saveInfo = this.accountRepository.saveAgentofDeductionInfo(userAgentofDeductionView, registrationId); var getRole = this.accountRepository.GetAdminRoleUserRoles(EnvironmentValues.AgentOfDeduction); // this.accountRepository.CreateUserRole(userAgentofDeductionView.Email, getRole.AdminRoleId); if (savedData == string.Empty) { //Send activation Link to the User, //Genenrate Activation Code var activationCode = CodeGenerators.GenerateActivationCode(); //Get The registered User Information var user = this.accountRepository.GetRegistrationByEmail(userAgentofDeductionView.Email); //Pass the Code and the user ID to store to Database var result = this.accountRepository.SaveUserActivationCode(user.UserRegistrationId, activationCode); // email send implementation here var emailDetail = this.emailFactory.CreateRegistrationRequestEmail(userAgentofDeductionView.Email, userAgentofDeductionView.FirstName, activationCode); //999 is the registrationId from database var emailKey = this.environment[EnvironmentValues.EmailKey]; this.emailService.Send(emailKey, "*****@*****.**", "Pitalytics Team", emailDetail.Subject, emailDetail.Recipients, emailDetail.Recipients, "", emailDetail.Body); } return(returnViewModel); }