Esempio n. 1
0
        public async Task Execute(TaskModel.Task task, string observation, DateTime overdureTime, int TaskID)
        {
            var getTask = _taskRepository.Get(TaskID);
            var users   = _userReopository.GetAll();
            var idUser  = "";

            foreach (var u in users)
            {
                var roles = u.Roles;
                foreach (var r in roles)
                {
                    if (r == "Aprobador de AC")
                    {
                        idUser = u.Id;
                    }
                }
            }
            var ResponsibleUser = _userReopository.Get(idUser);
            var email           = ResponsibleUser.Email;

            List <string> EmailsToNotify = new List <string>();

            EmailsToNotify.Add(email);
            int taskStateID = 0;
            var url         = $"{_emailSettings.Url}/quality/tasks/{ TaskID }/detail";
            var content     = $"<html>" +
                              $"<body>" +
                              $"<p>Estimado Usuario: </p>" +
                              $"<p>Se solicita extensión fecha de vencimiento de una tarea de Acción Correctiva. </p>" +

                              $"<p><b>Id tarea: </b>{getTask.TaskID}.</p>" +
                              $"<p><b>Descripción de la tarea: </b>{getTask.Description}.</p>" +
                              $"<p><b>Responsable asignado a la tarea: </b>{getTask.ResponsibleUser.FullName}.</p>" +
                              $"<p><b>Fecha vencimiento de la tarea: </b>{getTask.ImplementationPlannedDate.ToString("dd/MM/yyyy")}.</p>" +
                              $"<p><b>Estado: </b>{getTask.TaskState.Name}.</p>" +
                              $"<p><b>Fecha vencimiento solicitada: </b>{task.overdureTime.Value.ToString("dd/MM/yyyy")}.</p>" +
                              $"<p>Puede acceder desde aquí: <a href={url}>Ver tarea de Acción Correctiva</a>.</p>" +
                              $"<p></p>" +
                              $"<p>Saludos cordiales.</p>" +
                              $"</body>" +
                              $"</html>";
            await _emailSender.SendEmailAsync(EmailsToNotify.ToArray(), new List <string>().ToArray(), new List <string>().ToArray(), "Solicitud extensión de fecha de vencimiento de tarea de AC", content, true, System.Net.Mail.MailPriority.High);

            var allTaskStates = _getAllTaskStates.Execute();

            foreach (var s in allTaskStates)
            {
                if (s.Code == "EFV")
                {
                    taskStateID = s.TaskStateID;
                }
            }


            getTask.TaskStateID = taskStateID;
            _taskRepository.Update(getTask);
        }
 //  [ServiceFilter(typeof(CacheEndpointFilter))]
 public IActionResult Get()
 {
     return(new OkObjectResult(_getAllTaskStatesUseCase.Execute()));
 }