/// <summary> /// Send mail /// </summary> /// <param name="employeeIdentityRegistration"></param> /// <returns></returns> private async Task sendMailToEmployee(EmployeeIdentityRegistration employeeIdentityRegistration) { var bodyContent = "Bienvenido a Cotorria, tu empresa te invita a usar la App Móvil de Cotorria, te mandamos tu código de activación "; var mailProvider = FactoryMailProvider.CreateInstance(FactoryMailProvider.GetProviderFromConfig()); var sendParams = new SendMailParams() { HTMLContent = $"{bodyContent}: {employeeIdentityRegistration.ActivationCode}", PlainContentText = $"{bodyContent}: {employeeIdentityRegistration.ActivationCode}", SendMailAddresses = new List <SendMailAddress>() { new SendMailAddress() { Email = employeeIdentityRegistration.Email } }, Subject = "Invitación a Cotorria" }; await mailProvider.SendMailAsync(sendParams); }
public async Task SendEmail_XMLTM() { ISendMailProvider sendMailProvider = FactoryMailProvider.CreateInstance(FactoryMailProvider.GetProviderFromConfig()); var sendMailParams = new Schema.SendMailParams() { HTMLContent = "<strong>Este es un correo de prueba</strong>", PlainContentText = "Este es un correo de prueba", Subject = "Cotorria entrega CFDI" }; var bytesContent = File.ReadAllBytes(Path.Combine(EmployerRegistrationUT.AssemblyDirectory, "testingFiles\\example.xml")); sendMailParams.SendMailAddresses.Add(new Schema.SendMailAddress() { Email = "*****@*****.**", Name = "Omar" }); sendMailParams.SendMailAttachments.Add(new Schema.SendMailAttachment() { Attachment = bytesContent, Filename = "cfdi.xml", TypeAttachment = TypeAttachment.XML }); await sendMailProvider.SendMailAsync(sendMailParams); }
private async Task <PayrollStampingResult> payrollStampingCoreAsync(PayrollStampingParams payrollStampingParams, List <Overdraft> historicOverdraftsToStamp, List <Incident> incidents, List <Inhability> inhabilities, List <EmployerFiscalInformation> employerFiscalInformations, List <PayrollCompanyConfiguration> payrollConfigurations) { var payrollStampingResult = new PayrollStampingResult(); List <string> zipCodesToFind = historicOverdraftsToStamp.Select(p => p.HistoricEmployee.EmployerRegistrationZipCode).ToList(); zipCodesToFind.AddRange(payrollConfigurations.Select(p => p.Address?.ZipCode)); //Obtener los zipCodes var zipCodeMiddlewareManager = new MiddlewareManager <catCFDI_CodigoPostal>( new BaseRecordManager <catCFDI_CodigoPostal>(), new catCFDI_CodigoPostalValidator()); var zipCodes = await zipCodeMiddlewareManager.FindByExpressionAsync(p => zipCodesToFind.Contains(p.c_CodigoPostal) , payrollStampingParams.IdentityWorkID); //Round for currency var roundUtil = new RoundUtil(payrollStampingParams.Currency.ToString()); //Zip Code manager var zipCodeManager = new ZipCodeManager(zipCodes); //Blob Storage Util var blobStorageUtil = new BlobStorageUtil(payrollStampingParams.InstanceID); await blobStorageUtil.InitializeAsync(); ISendMailProvider sendMailProvider = FactoryMailProvider.CreateInstance(SendMailProvider.SendGrid); var tasks = new List <Task <List <PayrollStampingResultDetail> > >(); foreach (var overdraftToStamp in historicOverdraftsToStamp) { tasks.Add(doWorkAsync(overdraftToStamp, roundUtil, zipCodeManager, payrollStampingParams, blobStorageUtil, sendMailProvider, incidents, inhabilities, employerFiscalInformations, payrollConfigurations)); } ConcurrentBag <PayrollStampingResultDetail> payrollStampingDetails = new ConcurrentBag <PayrollStampingResultDetail>(); foreach (var task in await Task.WhenAll(tasks)) { foreach (var insideTask in task) { payrollStampingDetails.Add(insideTask); } } payrollStampingResult.PayrollStampingResultDetails = payrollStampingDetails.ToList(); //Update DB indicate that Overdraft was stamped correctly / PeriodDetail await saveOverdraftStampedAsync(payrollStampingParams, payrollStampingResult); //Errors preparation if (payrollStampingResult.PayrollStampingResultDetails.Any(p => p.PayrollStampingResultStatus == PayrollStampingResultStatus.Fail)) { var errorMessages = payrollStampingResult.PayrollStampingResultDetails.Select(p => p.Message); throw new CotorraException(109, "109", string.Join("\n", errorMessages), null); } return(payrollStampingResult); }