示例#1
0
        public Trip Convert(int tripId, UpdateTrip updateTrip)
        {
            var trip = _mapper.Map <Trip>(updateTrip);

            trip.Id = tripId;
            trip.TripDestinations = updateTrip.TripDestinations?.Select(x => _tripDestinationConverter.Convert(x)).ToList();
            return(trip);
        }
示例#2
0
        public async Task <IActionResult> UpdateTrip([FromRoute] int tripId, [FromBody] UpdateTrip updateTrip)
        {
            try
            {
                await _mediator.Send(new UpdateTripCommand(_tripConverter.Convert(tripId, updateTrip)));

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#3
0
        //[Authorize]
        public async Task EditTripAsync(
            int id,
            UpdateTrip updatedTrip,
            CancellationToken cancellationToken)
        {
            var correlationId = Guid.NewGuid();
            var trip          = await _tripRepository.GetTripByUserFriendlyIdAsync(id, cancellationToken);

            await _commandDispatcher.DispatchAsync(new EditTrip(
                                                       trip.UniqueId,
                                                       updatedTrip.Destination,
                                                       updatedTrip.IsCancelled,
                                                       updatedTrip.Owner,
                                                       correlationId),
                                                   cancellationToken);
        }
        public ActionResult Update(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Trip trip = db.Trips.SqlQuery("select * from trips where TripId=@TripId", new SqlParameter("@TripId", id)).FirstOrDefault();
            List <Destination> dest = db.Destinations.SqlQuery("select * from Destinations").ToList();

            UpdateTrip viewmodel = new UpdateTrip();

            viewmodel.trip = trip;
            viewmodel.dest = dest;
            if (trip == null)
            {
                return(HttpNotFound());
            }
            return(View(viewmodel));
        }
示例#5
0
        public async Task <ActionResult> Update([FromBody] UpdateTrip item, int id)
        {
            if (!AllowEdit(id))
            {
                return(Forbid());
            }

            Trip trip = service.GetByID(id);

            trip.IsCarCompensationNeeded = item.IsCarCompensationNeeded;
            trip.IsPlaneNeeded           = item.IsPlaneNeeded;
            trip.IsCarRentalNeeded       = item.IsCarRentalNeeded;
            foreach (var employee in item.Employees)
            {
                if (trip.EmployeesToTrip?.Any(x => x.EmployeeID == employee) == false)
                {
                    var employeeToTrip = new EmployeeToTrip
                    {
                        EmployeeID = employee,
                        TripId     = id,
                        Status     = "NEW",
                        WasRead    = false,
                    };
                    await employeeToTripService.Add(employeeToTrip);
                }
            }

            var idsToDelete       = new List <int>();
            var usersInfoToDelete = new List <int>();

            foreach (var e in trip.EmployeesToTrip)
            {
                if (!item.Employees.Contains(e.EmployeeID))
                {
                    idsToDelete.Add(e.EmployeeToTripID);
                    usersInfoToDelete.Add(e.EmployeeID);
                    //employeeToTripService.Remove(e.EmployeeToTripID);
                }
            }

            foreach (var idToDelete in idsToDelete)
            {
                employeeToTripService.Remove(idToDelete);
            }

            var tickets      = trip.PlaneTickets.Where(x => usersInfoToDelete.Contains(x.EmployeeID));
            var gas          = trip.GasCompensations.Where(x => usersInfoToDelete.Contains(x.EmployeeID));
            var reservations = trip.Reservations.Where(x => usersInfoToDelete.Contains(x.EmployeeID));

            trip.Reservations = item.Rooms.Select(x => new Reservation
            {
                ApartmentID    = trip.ArrivalOffice.Apartaments.First(a => a.RoomNumber == x.RoomID).ApartmentID,
                EmployeeID     = x.EmployeeID,
                CheckIn        = trip.DepartureDate,
                CheckOut       = trip.ReturnDate,
                TripID         = trip.TripID,
                ReservationUrl = "-",
            }).ToList();

            trip.PlaneTickets     = trip.PlaneTickets.Where(x => !tickets.Select(y => y.PlaneTicketID).Contains(x.PlaneTicketID)).ToList();
            trip.GasCompensations = trip.GasCompensations.Where(x => !gas.Select(y => y.GasCompensationID).Contains(x.GasCompensationID)).ToList();

            var result = service.Update(trip);

            return(Ok());
        }