Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }