public async Task <IActionResult> FixEmail(int id) { var mm = await _dbContext.MailMessages.Include(i => i.Order).AsNoTracking().SingleOrDefaultAsync(x => x.Id == id); if (mm == null) { return(NotFound()); } var editMailMessageModel = new EditMailMessageModel(mm); return(View(editMailMessageModel)); }
public async Task <IActionResult> FixEmail(int id, EditMailMessageModel model) { var mm = await _dbContext.MailMessages.Include(i => i.Order).SingleOrDefaultAsync(x => x.Id == id); if (mm == null || model.Id != id || model.OrderId != mm.Order.Id) { return(NotFound()); } var saveSendTo = mm.SendTo; if (ModelState.IsValid) { mm.SendTo = model.SendTo; mm.Subject = model.Subject; if (model.Resend) { mm.Sent = null; } var extraMessage = mm.Sent == null ? "The mail message will attempt to send again." : "You did not choose to try and re-send"; if (model.Unsend) { mm.Sent = true; extraMessage = "Message marked as sent and will not be resent"; } var user = _dbContext.Users.Single(a => a.Id == CurrentUserId); var order = mm.Order; var historyNote = extraMessage; if (saveSendTo != mm.SendTo) { historyNote = $"Email List Changed. Original: {saveSendTo} New: {mm.SendTo} . {extraMessage}"; } order.History.Add(new History { Action = "Fix Email", Status = order.Status, ActorId = user.NormalizedUserName, ActorName = user.Name, JsonDetails = order.JsonDetails, Notes = historyNote }); await _dbContext.SaveChangesAsync(); Message = $"Mail Message updated. {extraMessage}"; return(RedirectToAction("MailQueue", "Admin", new{ id = model.OrderId })); } ErrorMessage = "Unable to save"; return(View(model)); }