public IActionResult AddTicketTrip([FromBody] TicketTripListRequest ticketTripListRequest)
 {
     using (var transaction = _context.Database.BeginTransaction())
     {
         try
         {
             var ticketTripRequests = ticketTripListRequest.TicketTripRequests;
             var trips = _context.Trips.Where(x => x.IsFinish == false).ToList();
             foreach (var item in ticketTripRequests)
             {
                 var ticket = _context.Tickets.FirstOrDefault(x => x.Id == item.Ticket.Id);
                 ticket.ApprovedDate = item.Ticket.ApprovedDate;
                 ticket.ApproverId   = item.Ticket.ApproverId;
                 ticket.ApproverName = item.Ticket.ApproverName;
                 ticket.Status       = item.Ticket.Status;
                 _context.SaveChanges();
                 var trip = trips.FirstOrDefault(x => x.CarId == item.Trip.CarId);
                 if (trip == null)
                 {
                     Trip newTrip = new Trip()
                     {
                         CarId         = item.Trip.CarId,
                         DriverId      = item.Trip.DriverId,
                         FromLocation  = item.Trip.FromLocation,
                         ToLocation    = item.Trip.ToLocation,
                         IsFinish      = item.Trip.IsFinish,
                         NoteForDriver = item.Trip.NoteForDriver,
                         StartDate     = item.Trip.StartDate,
                         Type          = item.Trip.Type
                     };
                     _context.Trips.Add(newTrip);
                     _context.SaveChanges();
                     TicketTrip ticketTrip = new TicketTrip()
                     {
                         TicketId = ticket.Id,
                         TripId   = newTrip.Id
                     };
                     _context.TicketTrips.Add(ticketTrip);
                     _context.SaveChanges();
                 }
                 else
                 {
                     TicketTrip ticketTrip = new TicketTrip()
                     {
                         TicketId = ticket.Id,
                         TripId   = trip.Id
                     };
                     _context.TicketTrips.Add(ticketTrip);
                     _context.SaveChanges();
                 }
             }
             transaction.Commit();
         }
         catch (Exception error)
         {
             transaction.Rollback();
         }
     }
     return(Ok());
 }
예제 #2
0
 public void Add(T entity)
 {
     _entity.Add(entity);
     _context.SaveChanges();
 }