예제 #1
0
        public ActionResult Edit(Ticket ticket, FormCollection formCollection)
        {
            if (!string.IsNullOrEmpty(formCollection["Comment"]))
            {
                ticket.Comments.Add(new TicketComment
                {
                    Description     = formCollection["Comment"],
                    CreatedById     = OperatingUser.Id,
                    CreatedDateUtc  = DateTime.UtcNow,
                    ModifiedById    = OperatingUser.Id,
                    ModifiedDateUtc = DateTime.UtcNow,
                    CompanyId       = OperatingUser.CompanyId,
                    TicketId        = ticket.Id
                });
            }
            var changes = new List <ChangeLog>();

            _ticketService.Update(ticket, ref changes);
            ticket = _ticketService.Details(ticket.Id);

            var userIds = ticket.NotifyTo?.Split(',').ToList() ?? new List <string>();

            userIds.Add(ticket.RequestorId);
            userIds.Add(ticket.AssignedToId);
            userIds.Add(ticket.CreatedById);
            List <string> contributors = _userService.GetEmailsById(userIds.ToArray());

            ticket.LinkToTicketDetails =
                $"{Request.Url.Scheme}://{Request.Url.Host}:{Request.Url.Port}{Url.Action("Edit", "Ticket", new { id = ticket.Id })}";
            string emailMessage = _ticketService.ComposeTicketEditEmail(ticket, changes);

            _emailService.SendEmail(emailMessage, $"Ticket Updated: {ticket.Title}", contributors.Distinct().ToArray());

            return(View(ticket));
        }