public void EditorComment(Submission submission, EditorCommentModel model, long userID, string path = null) { var context = _serviceProvider.GetService <ApplicationDbContext>(); submission.EditorComment = model.Comment; var previoursStatus = submission.SubmissionStatus; if (model.IsFinished == true) { submission.SubmissionStatus = SubmissionStatus.Submission; } context.SaveChanges(); }
public async Task <IActionResult> EditorComment(EditorCommentModel model) { if (ModelState.IsValid) { var sumissionService = HttpContext.RequestServices.GetService <ISubmissionService>(); var submission = sumissionService.GetSubmission(model.Id, ((JMSPrincipal)User).ApplicationUser.Id); if (submission.SubmissionStatus == SubmissionStatus.Draft) { sumissionService.EditorComment(submission, model, ((JMSPrincipal)User).ApplicationUser.Id); sumissionService.SaveSubmissionHistory(new SubmissionHistory { TenanatID = JMSUser.TenantId.GetValueOrDefault(), SubmissionId = model.Id, Action = $"Editor comment has been changed.", ActionDate = DateTime.UtcNow, ActorEmail = JMSUser.Email, ActorName = $"{JMSUser.FirstName} {JMSUser.LastName}" }); if (model.IsFinished.HasValue && model.IsFinished.Value) { try { await SubmissionConfirmaitionEmail(model.Id, GetService <IRazorViewToStringRenderer>(), GetService <IEmailSender>(), GetService <IFileService>()); AddSuccessMessage("Submission has been submitted. A confirmation email has been send to you."); sumissionService.SaveSubmissionHistory(new SubmissionHistory { TenanatID = JMSUser.TenantId.GetValueOrDefault(), SubmissionId = model.Id, Action = $"Submission has been Completed and Submitted", ActionDate = DateTime.UtcNow, ActorEmail = JMSUser.Email, ActorName = $"{JMSUser.FirstName} {JMSUser.LastName}" }); } catch (Exception ex) { HttpContext.RiseError(ex); AddFailMessage("Submission has been submitted but failed to send confirmation email."); } try { var eics = GetService <IUserService>().GetTenantUserByRole(JMSUser.TenantId.Value, RoleName.EIC); if (eics.Any()) { var emailBody = await GetService <IRazorViewToStringRenderer>().RenderViewToStringAsync(@"/Views/EmailTemplates/AddSubmissionNotificationEmail.cshtml", new AddSubmisssionNotificationEmailModel()); var mailMessage = new MailMessage(_configuration[JMSSetting.SenderEmail], eics.First().Email, _configuration[JMSSetting.NewSubmissionEmailSubject], emailBody) { IsBodyHtml = true }; foreach (var eic in eics.Skip(1)) { mailMessage.To.Add(eic.Email); } GetService <IEmailSender>().SendEmail(mailMessage); } } catch (Exception ex) { HttpContext.RiseError(ex); } } } return(Ok()); } return(BadRequest()); }