public IActionResult Contact(int ticketId) { //get th ticket and the customer associated with that ticket var ticket = context.Tickets.Find(ticketId); var customer = context.Customers.Find(context.Devices.Find(ticket.DeviceId).CustomerId); IEnumerable <Event> events = context.Events.Where(e => e.Category == EventCategory.Contact).ToList(); //create LogEditViewModel var model = new NewLogContactViewModel { TicketId = ticket.Id, TicketNumber = ticket.TicketNumber, CustomerFirstName = customer.FirstName, CustomerLastName = customer.LastName, CustomerEmail = customer.Email, CustomerPhone = customer.Phone, TicketStatus = context.Logs.GetLatestLogByTicketId(ticketId).TicketStatus, Events = SelectListHelper.ToSelectListItems(events, -1) // nothing selected }; //return View return(View(model)); }
//Post Method for log contact public IActionResult Contact(NewLogContactViewModel model) { //get the ticket and check for valid Ticket ticket = context.Tickets.Find(model.TicketId); if (!ModelState.IsValid || ticket == null) { return(View(model)); } //create new log Log log = new Log { UserCreated = User.FindFirst(ClaimTypes.Name).Value.ToString(), EventId = model.SelectedEventId, TicketId = model.TicketId, DateCreated = DateTime.Now, Notes = model.LogNotes, TicketStatus = model.TicketStatus }; //update database context.Add(log); context.SaveChanges(); ////record time finished if ticket has been completed //ticket.Status = model.TicketStatus; //if (model.TicketStatus == TicketStatus.PendingPickup) //{ // ticket.FinishDate = DateTime.Now; //} //else if (model.TicketStatus == TicketStatus.Closed) //{ // ticket.CheckOutDate = DateTime.Now; // ticket.CheckOutUserId = User.FindFirst(ClaimTypes.Name).Value.ToString(); //} ////update tickets table //context.Tickets.Commit(); return(RedirectToAction("Index", "Ticket")); }