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"));
        }