Exemple #1
0
        public void Load_An_Existing_Template_Without_Params()
        {
            string template = _mailTemplate.LoadTemplate("Test.html");

            Assert.IsNotNull(template);
            Assert.IsTrue(template.Length > 0);
        }
        public async Task Handle(DomainEventNotification <UpdatedServiceRequest> notification,
                                 CancellationToken cancellationToken)
        {
            var serviceRequest = notification.DomainEvent.ServiceRequest;

            if (serviceRequest.State == ServiceRequestState.Pending)
            {
                return;
            }

            var client =
                await _clientsRepository.GetClientWithUser(serviceRequest.ClientId);

            string responseMessage = serviceRequest.State switch
            {
                ServiceRequestState.Accepted =>
                "Hemos aceptado tu solicitud de servicio y agendamos las actividades a aplicar.",
                ServiceRequestState.Rejected => "Desafortunadamente hemos rechazado tu solicitud de servicio.",
                ServiceRequestState.PendingSuggestedDate =>
                "Te hemos sugerido una nueva fecha de aplicación de nuestros servicios.",
                _ => "Tu solicitud aún está pendiente"
            };

            var responseUrl = new UriBuilder(KaizenHttpContext.BaseUrl)
            {
                Path = serviceRequest.State switch
                {
                    ServiceRequestState.Accepted => "/activity_schedule/client_schedule",
                    ServiceRequestState.Rejected => "/service_requests/register",
                    ServiceRequestState.PendingSuggestedDate => "/service_requests/new_date",
                    _ => $"/service_requests/{serviceRequest.Code}"
                }
            };

            var responseButtonMessage = serviceRequest.State switch
            {
                ServiceRequestState.Accepted => "Ver mi calendario de actividades",
                ServiceRequestState.Rejected => "Intentar hacer otra solicitud",
                ServiceRequestState.PendingSuggestedDate => "Ver fecha sugerida",
                _ => "Ver solicitud"
            };

            string emailMessage = _mailTemplate.LoadTemplate("ServiceRequestResponse.html",
                                                             $"{client.FirstName} {client.LastName}",
                                                             responseMessage,
                                                             responseUrl.ToString(),
                                                             responseButtonMessage);

            await _mailService.SendEmailAsync(
                client.User.Email,
                "Respuesta de solicitud de servicio",
                emailMessage,
                true);
        }
    }
}
        public async Task Handle(DomainEventNotification <SavedActivity> notification,
                                 CancellationToken cancellationToken)
        {
            Activity activity = notification.DomainEvent.Activity;
            Client   client   = activity.Client;

            string emailMessage = _mailTemplate.LoadTemplate("NewActivity.html",
                                                             $"{client.LastName} {client.FirstName}", activity.Date.ToString("yyyy/MM/dd hh:mm tt"));

            await _mailService.SendEmailAsync(client.User.Email, "Solicitud de servicios", emailMessage, true);
        }
        public async Task <bool> SendPasswordResetTokenAsync(ApplicationUser user, string resetPasswordLink)
        {
            if (user is null)
            {
                return(false);
            }

            string mailTemplate = _mailTemplate.LoadTemplate("ResetPassword.html", resetPasswordLink);

            await _mailService.SendEmailAsync(user.Email, "Contraseña olvidada", mailTemplate, true);

            return(true);
        }
        private async Task SendPendingActivityEmail(Activity activity)
        {
            string activityConfirmationLink = GetActivityLink("ConfirmActivity", activity.Code);
            string activityRejectLink       = GetActivityLink("RejectActivity", activity.Code);
            string changeDateLink           = GetActivityLink("ChangeDate", activity.Code);

            string mailMessage = _mailTemplate.LoadTemplate("PendingActivityToBeConfirmed.html",
                                                            $"{activity.Client.FirstName} {activity.Client.SecondName} {activity.Client.LastName} {activity.Client.SecondLastName}",
                                                            $"{activity.Date}", activityConfirmationLink, activityRejectLink, changeDateLink);

            await _mailService.SendEmailAsync(activity.Client.User.Email, "Actividad pendiente a confirmación",
                                              mailMessage,
                                              true);
        }
Exemple #6
0
        public async Task DoWork(CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                IEnumerable <Employee> employees = await _employeesRepository.EmployeesWithContractCloseToExpiration();

                foreach (Employee employee in employees)
                {
                    string mailMessage = _mailTemplate.LoadTemplate("ContractCloseToExpiration.html", $"{employee.LastName} {employee.FirstName}",
                                                                    employee.ContractCode,
                                                                    employee.EmployeeContract.EndDate.ToShortDateString());

                    await _mailService.SendEmailAsync(employee.User.Email, "Contrato a punto de vencer", mailMessage, true);
                }

                await Task.Delay(DelayTime, cancellationToken);
            }
        }
Exemple #7
0
        public async Task Handle(DomainEventNotification <SavedPerson> notification, CancellationToken cancellationToken)
        {
            Client client = notification.DomainEvent.Client;

            string emailConfirmationToken =
                await _applicationUserRepository.GenerateEmailConfirmationTokenAsync(client.User);

            UriBuilder uriBuilder = new UriBuilder(KaizenHttpContext.BaseUrl)
            {
                Path  = "user/ConfirmEmail",
                Query = $"token={emailConfirmationToken.Base64ForUrlEncode()}&email={client.User.Email}"
            };
            string emailConfirmationLink = uriBuilder.ToString();

            string emailMessage = _mailTemplate.LoadTemplate("NewClient.html",
                                                             $"{client.FirstName} {client.LastName}",
                                                             $"{client.TradeName}", $"{client.ClientAddress.City}",
                                                             $"{client.ClientAddress.Neighborhood}", $"{client.ClientAddress.Street}",
                                                             $"{emailConfirmationLink}");

            await _mailService.SendEmailAsync(client.User.Email, "Cliente Registrado", emailMessage, true);
        }