public void Save(CustomerImport customerImport) { using (var transaction = Connection.BeginTransaction()) { customerImportRepository.Save(customerImport); } }
private bool IsMemberExists(CustomerImport client) { CustomerImport customerImport = null; client.HandleCustomer(); if (client.Email.IsValidEmail()) { customerImport = customerImportRepository.GetByEmail(client.Email).FirstOrDefault(); } if ((customerImport.IsNull() || customerImport.AccountCode.IsEmpty()) && client.DisplayDocument.IsValidCPF()) { customerImport = customerImportRepository.GetByCPF(client.DisplayDocument).FirstOrDefault(); } if ((customerImport.IsNull() || customerImport.AccountCode.IsEmpty()) && client.DisplayDocument.IsValidCNPJ()) { customerImport = customerImportRepository.GetByCNPJ(client.DisplayDocument).FirstOrDefault(); } if (!customerImport.IsNull() && !customerImport.AccountCode.IsEmpty()) { return(true); } var account = new Account() { Email = client.Email, Document = client.DisplayDocument, Login = client.Email }; return(accountRepository.IsMemberExists(account));; }
public bool Exists(string username, Guid storeCode) { CustomerImport customerImport = Get(username, storeCode); if (!customerImport.IsNull() && !customerImport.AccountCode.IsEmpty()) { return(true); } else { return(false); } }
public CustomerImport Get(string username, Guid storeCode) { CustomerImport customerImport = null; if (username.IsValidEmail()) { customerImport = customerImportRepository.GetByEmail(username, storeCode); } else if (username.IsValidCPF()) { customerImport = customerImportRepository.GetByCPF(username, storeCode); } else if (username.IsValidCNPJ()) { customerImport = customerImportRepository.GetByCNPJ(username, storeCode); } return(customerImport); }
private void SendPasswordRecoveryEmail(CustomerImport customer, Store store, string tokenCode, string urlBack = "", int emailTemplateCode = 0) { var accountsURL = Config.AccountsSiteURL; if (!string.IsNullOrWhiteSpace(accountsURL)) { var input = new object(); try { var output = provider.SendEmail(input); if (!output.IsNull()) { notify.Warn("Fail send e-mail - SendPasswordRecoveryEmail - Customer: Message: {0}".ToFormat(output)); } } catch (Exception ex) { notify.Error("Fail send e-mail - SendPasswordRecoveryEmail - Customer", ex); } } }
public bool SaveAccount(Requisition requisition, Object account, ApplicationStore applicationStore, IConnection connection) { var fileRequisition = requisition as FileRequisition; var line = (string)account; var properties = line.Split(new char[] { '\t' }); var message = new List <string>(); bool isValid = true; try { var result = customerImportFileInfraService.ValidCustomer(properties, fileRequisition); if (result.Item1) { CustomerImport customer = result.Item3; var clientValid = customer.isValid(); if (clientValid.Item1) { try { if (customer is CompanyImport) { var company = (CompanyImport)customer; } else { var person = (PersonImport)customer; } } catch (Exception ex) { isValid = false; message.Add(ex.Message); } if (isValid) { if (!IsMemberExists(customer)) { customerImportRepository.Save(customer); } else { isValid = false; message.Add("Usuário já existe"); } } } else { isValid = false; message.AddRange(clientValid.Item2); } } else { isValid = false; message.AddRange(result.Item2); } } catch (Exception ex) { isValid = false; message.Add(string.Format("{0}", ex.TrimMessage())); } if (!isValid) { requisition.RequisitionErrors.Add(new RequisitionError() { Code = Guid.NewGuid(), ErrorMessages = message, Email = properties.Count() > ConstantsFileImport.Email ? properties[ConstantsFileImport.Email] : string.Empty, Name = properties.Count() > ConstantsFileImport.FirstName ? properties[ConstantsFileImport.FirstName] : string.Empty }); } return(isValid); }
public override string GenerateResetPasswordToken(string email, Guid clientId, string urlBack = "", int emailTemplateCode = 0) { if (email.IsNullOrWhiteSpace()) { throw new ArgumentException("E-mail não informado"); } ApplicationStore appSto; Account account; CustomerImport customerImport = null; string _tokenCode = string.Empty; using (var transaction = Connection.BeginTransaction()) { try { appSto = applicationStoreRepository.GetByClientId(clientId); var accounts = accountRepository.Get(email, appSto, true); accountService.lockedUpMemberPolicy = lockedUpMemberPolicy; accountService.lockMemberPolicy = lockMemberPolicy; accountService.passwordPolicy = passwordPolicy; account = accountService.Authenticate(accounts, appSto, false); if (account != null) { var resetPasswordTokenService = resetPasswordTokenFactory.GetResetPasswordTokenService(account); resetPasswordTokenService.lockedUpMemberPolicy = lockedUpMemberPolicy; var token = resetPasswordTokenService.GenerateResetPasswordToken(account, appSto, urlBack); _tokenCode = token.Code.EncodeURIComponent(); svcEmail.SendPasswordRecoveryEmailAsync(account, appSto.Store, _tokenCode, token.UrlBack, emailTemplateCode); } else { customerImport = customerImportService.Get(email, appSto.Store.Code); if (customerImport != null) { var resetPasswordTokenService = resetPasswordTokenFactory.GetResetPasswordTokenService(customerImport); var token = resetPasswordTokenService.GenerateResetPasswordToken(customerImport, appSto, urlBack); _tokenCode = token.Code.EncodeURIComponent(); customerImport.HandleCustomer(); svcEmail.SendPasswordRecoveryEmailAsync(customerImport, appSto.Store, _tokenCode, urlBack, emailTemplateCode); } } transaction.Commit(); } catch { transaction.Rollback(); throw; } } if (!appSto.IsNull() && (!account.IsNull() || !customerImport.IsNull())) { using (var transaction = Connection.BeginTransaction()) { try { var code = !account.IsNull() ? account.Code : customerImport.AccountCode; passwordLogRepository.Save(new PasswordLog(code, PasswordEventLog.RequestRecovery, appSto.Store.Code)); transaction.Commit(); } catch { transaction.Rollback(); } } } return(_tokenCode); }
public void SendPasswordRecoveryEmailAsync(CustomerImport customer, Store store, string tokenCode, string urlBack = "", int emailTemplateCode = 0) { Task.Run(() => SendPasswordRecoveryEmail(customer, store, tokenCode, urlBack, emailTemplateCode)); }
public Tuple <bool, List <string>, CustomerImport> ValidCustomer(string[] properties, FileRequisition fileRequisition) { CultureInfo culture = new CultureInfo("pt-BR"); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; bool valid = true; List <string> messages = new List <string>(); CustomerImport customer = null; if (properties.Length < 19) { valid = false; messages.Add("Linha com quantidade de colunas inválido"); return(new Tuple <bool, List <string>, CustomerImport>(valid, messages, customer)); } if (properties[ConstantsFileImport.TypeCustomer].Trim().ToLower() == "pf") { if (properties[ConstantsFileImport.FirstName].Trim().IsNullorEmpty()) //FirstName { valid = false; messages.Add("Nome inválido"); } if (properties[ConstantsFileImport.LastName].Trim().IsNullorEmpty()) //LastName { valid = false; messages.Add("Sobrenome inválido"); } if (properties[ConstantsFileImport.Document].Trim().IsNullorEmpty() || !properties[ConstantsFileImport.Document].Trim().IsValidCPF()) //CPF { valid = false; messages.Add("CPF inválido"); } DateTime dt = DateTime.MinValue; DateTime.TryParse(properties[ConstantsFileImport.BirthDate].Trim(), out dt); if (properties[ConstantsFileImport.BirthDate].Trim().IsNullorEmpty() || dt == DateTime.MinValue || dt >= DateTime.Now) //BirthDate { valid = false; messages.Add("Data de nascimento inválida"); } if (!properties[ConstantsFileImport.Sexo].Trim().IsNullorEmpty() && (properties[ConstantsFileImport.Sexo].Trim().ToLower() != "m" && properties[ConstantsFileImport.Sexo].Trim().ToLower() != "f")) //Sexo { valid = false; messages.Add("Gênero inválido"); } } else if (properties[ConstantsFileImport.TypeCustomer].Trim().ToLower() == "pj") { if (properties[ConstantsFileImport.CompanyName].Trim().IsNullorEmpty()) //CompanyName { valid = false; messages.Add("Razão Social inválido"); } if (properties[ConstantsFileImport.TradeName].Trim().IsNullorEmpty()) //TradeName { valid = false; messages.Add("Nome Fantasia inválido"); } if (properties[ConstantsFileImport.Document].Trim().IsNullorEmpty() || !properties[ConstantsFileImport.Document].Trim().IsValidCNPJ()) //CNPJ { valid = false; messages.Add("CNPJ inválido"); } if (properties[ConstantsFileImport.IM].Trim().IsNullorEmpty()) //IM { valid = false; messages.Add("IM inválido"); } if (properties[ConstantsFileImport.IE].Trim().IsNullorEmpty()) //IE { valid = false; messages.Add("IE inválido"); } } else { valid = false; messages.Add("Tipo de usuário inválido"); } if (properties[ConstantsFileImport.Email].Trim().IsNullorEmpty() || !properties[ConstantsFileImport.Email].Trim().IsValidEmail()) { valid = false; messages.Add("E-mail inválido"); } Tuple <bool, List <string> > resultAddress = ValidAddress(properties); if (!resultAddress.Item1) { valid = false; messages.AddRange(resultAddress.Item2); } if (valid) { customer = MakeCustomer(properties, fileRequisition); } return(new Tuple <bool, List <string>, CustomerImport>(valid, messages, customer)); }
/// <summary> /// Hàm đọc thông tin file excel. /// </summary> /// <param name="file">file excel.</param> /// <param name="cancellationToken">Token hủy</param> /// <returns>Danh sách các khách hàng và lỗi của từng khách hàng.</returns> /// CreatedBy: dbhuan (06/05/2021) public async Task <List <CustomerImport> > ReadFromExcel(IFormFile formFile, CancellationToken cancellationToken) { var customersImport = new List <CustomerImport>(); using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream, cancellationToken); using var package = new ExcelPackage(stream); ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; for (int rowNumber = 3; rowNumber <= rowCount; rowNumber++) { var customer = new Customer() { CustomerCode = GetValue(worksheet.Cells[rowNumber, 1].Value), FullName = GetValue(worksheet.Cells[rowNumber, 2].Value), MemberCardCode = GetValue(worksheet.Cells[rowNumber, 3].Value), PhoneNumber = GetValue(worksheet.Cells[rowNumber, 5].Value), DateOfBirth = ParseDate(worksheet.Cells[rowNumber, 6].Value), CompanyName = GetValue(worksheet.Cells[rowNumber, 7].Value), CompanyTaxCode = GetValue(worksheet.Cells[rowNumber, 8].Value), Email = GetValue(worksheet.Cells[rowNumber, 9].Value), Address = GetValue(worksheet.Cells[rowNumber, 10].Value), Note = GetValue(worksheet.Cells[rowNumber, 11].Value) }; var customerImport = new CustomerImport(); if (customersImport.Any()) { // check valid. // check customerCode exists on import. var customerCodeExistsOnExcel = customersImport.Where(c => c.Data.CustomerCode == customer.CustomerCode).Any(); if (customerCodeExistsOnExcel == true) { customerImport.Errors.Add(Properties.Resources.MsgErrorCustomerCodeExistsOnImport); } // check phoneNumber exists on import. var phoneNumberExistsOnExcel = customersImport.Where(c => c.Data.PhoneNumber == customer.PhoneNumber).Any(); if (phoneNumberExistsOnExcel == true) { customerImport.Errors.Add(Properties.Resources.MsgErrorPhoneNumberExistsOnImport); } } // check customerCode tồn tại trên hệ thống. var customerCodeExists = _customerRepository.CheckCustomerCodeExists(customer.CustomerCode); if (customerCodeExists == true) { customerImport.Errors.Add(Properties.Resources.MsgErrorCustomerCodeExists); } // check phoneNumber tồn tại trên hệ thống. var phoneNumberExists = _customerRepository.CheckPhoneNumberExists(customer.PhoneNumber); if (phoneNumberExists == true) { customerImport.Errors.Add(Properties.Resources.MsgErrorPhoneNumberExists); } // check nhóm khách hàng có tồn tại trên hệ thống. string customerGroupName = GetValue(worksheet.Cells[rowNumber, 4].Value); var customerGroup = _customerRepository.GetCustomerGroup(customerGroupName); if (customerGroup == null) { customerImport.Errors.Add(Properties.Resources.MsgErrorCustomerGroupNotExists); } else { customer.CustomerGroupId = customerGroup.CustomerGroupId; customer.CustomerGroupName = customerGroupName; } customerImport.Data = customer; customersImport.Add(customerImport); } } return(customersImport); }