public IHttpActionResult PostServiceTicket(ServiceTicketViewModel serviceTicket)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ServiceTickets.Add(serviceTicket.MapTo <ServiceTicket>());
            db.SaveChanges();

            return(Ok(serviceTicket));
        }
        public IHttpActionResult PutServiceTicket(int id, ServiceTicketViewModel serviceTicket)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != serviceTicket.Id)
            {
                return(BadRequest());
            }

            var existingTicket = db.ServiceTickets.FirstOrDefault(p => p.Id == id);

            if (existingTicket == null)
            {
                return(NotFound());
            }

            existingTicket.ServiceTemplateId = serviceTicket.ServiceTemplateId;
            existingTicket.EventTaskListId   = serviceTicket.EventTaskListId;
            existingTicket.EventDate         = serviceTicket.EventDate;
            existingTicket.ReferenceNumber   = serviceTicket.ReferenceNumber;
            existingTicket.VisitFromTime     = serviceTicket.VisitFromTime.Value.ToLocalTime();
            existingTicket.VisitToTime       = serviceTicket.VisitToTime.Value.ToLocalTime();
            existingTicket.JsonFields        = serviceTicket.JsonFields;
            existingTicket.ApprovedById      = serviceTicket.ApprovedById;
            existingTicket.ApprovedDate      = serviceTicket.ApprovedDate;
            existingTicket.Condition         = serviceTicket.Condition;
            existingTicket.Notes             = serviceTicket.Notes;

            db.ServiceMembers.RemoveRange(db.ServiceMembers.Where(s => s.ServiceTicketId == serviceTicket.Id));

            foreach (var member in serviceTicket.Members)
            {
                if (member.Selected)
                {
                    db.ServiceMembers.Add(new ServiceMember()
                    {
                        ServiceTicketId = serviceTicket.Id, EmployeeId = member.EmployeeId
                    });
                }
            }

            db.SaveChanges();

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #3
0
 public static TTarget MapTo <TTarget>(this ServiceTicketViewModel source) where TTarget : ServiceTicket
 {
     return(Mapper.Map <ServiceTicketViewModel, TTarget>(source));
 }