Exemplo n.º 1
0
        public async Task <Trip> SaveCity(int locationId, [FromBody] string[] names) /*First name is city, second name is country, third is place_id*/
        {
            ILocationManager m = ObjectContainer.GetLocationManager();
            Location         l = m.Get(locationId);

            ICityDbProvider c = ObjectContainer.GetCityDbProvider();

            if (names[0] == "" && names[1] == "" && names[2] == null)
            {
                l.City = null;
            }
            else
            {
                l.City = new City
                {
                    Name          = names[0],
                    CountryID     = c.GetCountryByName(names[1]).ID,
                    GooglePlaceId = names[2]
                };
            }

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

            trip.ArrangePoints();

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

            return(trip);
        }
Exemplo n.º 2
0
        public Trip SetBorderCrossDate(int locationId, [FromBody] long millis)
        {
            ILocationManager m           = ObjectContainer.GetLocationManager();
            ITripManager     t           = ObjectContainer.GetTripManager();
            IMapsManager     mapsManager = ObjectContainer.GetMapsManager();

            Location l    = m.Get(locationId);
            Trip     trip = t.Get(l.TripId);

            l.CrossedAtDate   = millis;
            l.SectionModified = true;

            if (trip.Locations[l.Position - 1].Transit)
            {
                trip.Locations[l.Position - 1].DepartureDate = millis;
            }
            if (trip.Locations[l.Position + 1].Transit)
            {
                trip.Locations[l.Position + 1].ArrivalDate = millis;
            }

            mapsManager.SetSectionAsModified(GetUser(), trip, l);

            trip.ArrangePoints();

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

            return(t.Get(l.TripId));
        }
Exemplo n.º 3
0
        public async Task <Trip> SaveDepartureTime(int locationId, [FromBody] long departureTime)
        {
            ILocationManager m = ObjectContainer.GetLocationManager();
            Location         l = m.Get(locationId);

            if (departureTime == -1)
            {
                l.DepartureTime = null;
            }
            else
            {
                l.DepartureTime = departureTime;
            }

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

            trip.ArrangePoints();

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

            return(trip);
        }
Exemplo n.º 4
0
        public async Task <Trip> SaveArrivalDate(int locationId, [FromBody] long arrivalDate)
        {
            ILocationManager m = ObjectContainer.GetLocationManager();
            Location         l = m.Get(locationId);

            l.ArrivalDate = arrivalDate;

            if (l.ArrivalDate.HasValue && l.DepartureDate.HasValue)
            {
                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);
                }
            }

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

            trip.ArrangePoints();

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

            return(trip);
        }
        private void SaveLocation(Location location)
        {
            var saveTask = Task.Run(() => _locationManager.Save(location));

            saveTask.ContinueWith(task => ExecuteGetLocations());
            saveTask.ContinueWith(DispatchError);
        }
Exemplo n.º 6
0
        public void AddLocation(AddLocationRequest request, Account account)
        {
            var customer = _customerManager.Get(request.CustomerIdentityTag);

            if (customer is null)
            {
                throw new AppException("customer not found");
            }

            _locationManager.Save(new CustomerLocation
            {
                Customer  = customer,
                Latitude  = request.Latitude,
                Longitude = request.Longitude
            });
        }
Exemplo n.º 7
0
        public Trip SaveCountry(int locationId, [FromBody] Country country)
        {
            ILocationManager m           = ObjectContainer.GetLocationManager();
            IMapsManager     mapsManager = ObjectContainer.GetMapsManager();
            ITripManager     tripManager = ObjectContainer.GetTripManager();
            Location         l           = m.Get(locationId);

            l.City.Country    = country;
            l.SectionModified = true;
            var trip = tripManager.Get(l.TripId);

            mapsManager.SetSectionAsModified(GetUser(), trip, l);

            m.Save(l);

            return(trip);
        }
Exemplo n.º 8
0
        public async Task <Trip> SaveInboundTravel(int locationId, [FromBody] TravelType travelType)
        {
            ILocationManager m = ObjectContainer.GetLocationManager();
            Location         l = m.Get(locationId);

            l.InboundTravelType = travelType;

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

            trip.ArrangePoints();

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

            return(trip);
        }
Exemplo n.º 9
0
        public async Task <Trip> ResetSectiondModifications(int locationId)
        {
            ILocationManager m           = ObjectContainer.GetLocationManager();
            ITripManager     t           = ObjectContainer.GetTripManager();
            IMapsManager     mapsManager = ObjectContainer.GetMapsManager();

            Location l    = m.Get(locationId);
            Trip     trip = t.Get(l.TripId);

            l.SectionModified = false;

            mapsManager.SetSectionAsNotModified(GetUser(), trip, l);

            m.Save(l);

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

            trip.ArrangePoints();

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

            return(trip);
        }
Exemplo n.º 10
0
        public void SaveFood([FromBody] SaveFoodObject saveFoodObject)
        {
            ILocationManager l = ObjectContainer.GetLocationManager();

            LocationFood loc = l.Get(saveFoodObject.LocationId).Food;

            int foodIndex = saveFoodObject.FoodIndex;
            int dayIndex  = saveFoodObject.DayIndex;

            if (dayIndex == 0 && loc.OnlyDay != null)
            {
                if (foodIndex == 0)
                {
                    loc.OnlyDay.Breakfast = !loc.OnlyDay.Breakfast;
                }
                else if (foodIndex == 1)
                {
                    loc.OnlyDay.Lunch = !loc.OnlyDay.Lunch;
                }
                else
                {
                    loc.OnlyDay.Dinner = !loc.OnlyDay.Dinner;
                }
            }
            else if (dayIndex == 0 && loc.FirstDay != null)
            {
                if (foodIndex == 0)
                {
                    loc.FirstDay.Breakfast = !loc.FirstDay.Breakfast;
                }
                else if (foodIndex == 1)
                {
                    loc.FirstDay.Lunch = !loc.FirstDay.Lunch;
                }
                else
                {
                    loc.FirstDay.Dinner = !loc.FirstDay.Dinner;
                }
            }
            else if (dayIndex == loc.MiddleDays.Count + 1)
            {
                if (foodIndex == 0)
                {
                    loc.LastDay.Breakfast = !loc.LastDay.Breakfast;
                }
                else if (foodIndex == 1)
                {
                    loc.LastDay.Lunch = !loc.LastDay.Lunch;
                }
                else
                {
                    loc.LastDay.Dinner = !loc.LastDay.Dinner;
                }
            }
            else
            {
                if (foodIndex == 0)
                {
                    loc.MiddleDays[dayIndex - 1].Breakfast = !loc.MiddleDays[dayIndex - 1].Breakfast;
                }
                else if (foodIndex == 1)
                {
                    loc.MiddleDays[dayIndex - 1].Lunch = !loc.MiddleDays[dayIndex - 1].Lunch;
                }
                else
                {
                    loc.MiddleDays[dayIndex - 1].Dinner = !loc.MiddleDays[dayIndex - 1].Dinner;
                }
            }

            Location location = l.Get(saveFoodObject.LocationId);

            location.Food = loc;
            l.Save(location);
        }
Exemplo n.º 11
0
        public int SaveLocation(Location location)
        {
            ILocationManager m = ObjectContainer.GetLocationManager();

            return(m.Save(location));
        }