コード例 #1
0
        public async Task <Trip> SaveDepartureDate(int locationId, [FromBody] long departureDate)
        {
            ILocationManager m = ObjectContainer.GetLocationManager();
            Location         l = m.Get(locationId);

            l.DepartureDate = departureDate;

            if (l.ArrivalDate.HasValue && l.DepartureDate.HasValue && l.ArrivalDate.Value != -1 && l.DepartureDate != -1)
            {
                if (l.Food == null)
                {
                    l.Food = CreateLocationFood((int)(l.DepartureDate / 24 / 60 / 60000 - l.ArrivalDate / 24 / 60 / 60000));
                }
                else
                {
                    l.Food = CreateLocationFood((int)(l.DepartureDate / 24 / 60 / 60000 - l.ArrivalDate / 24 / 60 / 60000), l.Food);
                }
            }
            else
            {
                l.Food = null;
            }

            m.Save(l);

            IMapsManager map  = ObjectContainer.GetMapsManager();
            ITripManager t    = ObjectContainer.GetTripManager();
            Trip         trip = t.Get(l.TripId);

            using (Trip tripX = ObjectContainer.Clone(trip)) { trip = await map.FillBorderPoints(GetUser(), tripX, l); }

            if (trip.Locations[0].ID == l.ID)
            {
                trip = t.SetExchangeRates(departureDate, trip);
            }

            trip.ArrangePoints();

            t.Save(GetUser().ID, trip);

            return(trip);
        }