Ejemplo n.º 1
0
        private void AddNewUserAndTrips(string userId, List <Trip> trips)
        {
            List <TripDocument> docList = new List <TripDocument>();

            AddTripsToDocument(trips, ref docList);

            TripsCollection collection = new TripsCollection(userId, docList);

            _trips.InsertOne(collection);
        }
Ejemplo n.º 2
0
        private void AddTripsToExistingUser(TripsCollection collection, List <Trip> trips)
        {
            List <TripDocument> newDocsList = collection.TripDocuments;

            AddTripsToDocument(trips, ref newDocsList);

            FilterDefinition <TripsCollection> filter = Builders <TripsCollection> .Filter.Eq(x => x.UserId, collection.UserId);

            UpdateDefinition <TripsCollection> update = Builders <TripsCollection> .Update.Set(x => x.TripDocuments, newDocsList);

            _trips.UpdateOne(filter, update);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets the TripDocument from a userId and date
        /// </summary>
        /// <param name="userId">The userId to look for</param>
        /// <param name="date">The date to look for</param>
        /// <returns>A TripDocument containing the trips for the specific user and date</returns>
        public TripDocument GetTripsOfUserAndDate(string userId, string date)
        {
            TripsCollection tripCol = _trips.Find(collection => collection.UserId == userId).FirstOrDefault();
            TripDocument    tripDoc = null;

            if (tripCol != null)
            {
                tripDoc = tripCol.TripDocuments.FirstOrDefault(x => x.DateId == date);
            }

            return(tripDoc);
        }
Ejemplo n.º 4
0
        public List <TripDocument> GetTrips(string userId)
        {
            TripsCollection tripsCollection = _trips.Find(collection => collection.UserId == userId).FirstOrDefault();

            if (tripsCollection == null)
            {
                return(null);
            }

            // This step is done to avoid sending the list of positions from a trip
            foreach (TripDocument document in tripsCollection.TripDocuments)
            {
                foreach (Trip trip in document.TripList)
                {
                    trip.TripPositions = null;
                }
            }
            return(tripsCollection.TripDocuments);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Saves a list of Trips to the given userId in the database
        /// </summary>
        /// <param name="trips">The trips to save</param>
        /// <param name="userId">The userId to save the trips to</param>
        /// <returns>A bool indicating success</returns>
        public bool SaveTrips(List <Trip> trips, string userId)
        {
            try
            {
                TripsCollection tripsCollection = _trips.Find(collection => collection.UserId == userId).FirstOrDefault();

                if (tripsCollection != null)
                {
                    AddTripsToExistingUser(tripsCollection, trips);
                }
                else
                {
                    AddNewUserAndTrips(userId, trips);
                }
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 6
0
        public bool UpdateTrip(string date, string tripId, string userId, Transport transport)
        {
            TripsCollection tripsCollection = _trips.Find(collection => collection.UserId == userId).FirstOrDefault();
            TripDocument    tripsOnDate;

            if (tripsCollection != null)
            {
                tripsOnDate = tripsCollection.TripDocuments.FirstOrDefault(x => x.DateId == date);

                if (tripsOnDate != null)
                {
                    Trip trip = tripsOnDate.TripList.FirstOrDefault(x => x.Id == tripId);
                    trip.Transport = transport;

                    FilterDefinition <TripsCollection> filter = Builders <TripsCollection> .Filter.Eq(x => x.UserId, userId);

                    UpdateDefinition <TripsCollection> update = Builders <TripsCollection> .Update.Set(x => x.TripDocuments, tripsCollection.TripDocuments);

                    _trips.UpdateOne(filter, update);
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 7
0
        async Task ExecuteLoadDirectionsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                StopsCollection.Clear();
                var stops = await StopDataStore.GetItemsAsync(true);

                foreach (Stop stop in stops)
                {
                    StopsCollection.Add(stop);
                }

                StopTimesCollection.Clear();
                StopTimeDataStore.Clear();
                var stopsTime = await StopTimeDataStore.GetItemsAsync(Route.RouteId, Route.i, true);

                foreach (StopTime stopTime in stopsTime)
                {
                    StopTimesCollection.Add(stopTime);
                }

                foreach (Stop stop in StopsCollection)
                {
                    foreach (StopTime stopTime in StopTimesCollection)
                    {
                        if (stop.StopId == stopTime.StopId)
                        {
                            stopTime.StopDesc = stop.StopDesc;
                        }
                    }
                }
                foreach (StopTime stopTime in StopTimesCollection)
                {
                    stopTime.ArrivalTime   = stopTime.ArrivalTime.Replace("1899-12-30T", "");
                    stopTime.DepartureTime = stopTime.DepartureTime.Replace("1899-12-30T", "");
                    stopTime.ArrivalTime   = stopTime.ArrivalTime.Replace("1899-12-31T", "Następnego dnia o:");
                    stopTime.DepartureTime = stopTime.DepartureTime.Replace("1899-12-31T", "Następnego dnia o:");
                }

                TripsCollection.Clear();
                var trips = await TripsDataStore.GetItemsAsync(Route.i, true);

                foreach (Trip trip in trips)
                {
                    TripsCollection.Add(trip);
                }
                DirectionsCollection.Clear();
                Direction DirectionZero = new Direction();
                DirectionZero.variants = new List <Variant>();
                Direction DirectionOne = new Direction();
                DirectionOne.variants = new List <Variant>();
                foreach (Trip trip in TripsCollection)
                {
                    if (Route.RouteId == int.Parse(trip.RouteId))
                    {
                        if (trip.DirectionId == "2")
                        {
                            Variant variantV2 = new Variant();
                            variantV2.stopTimesTest   = new List <StopTime>();
                            DirectionZero.directionId = trip.DirectionId;
                            variantV2.directionId     = int.Parse(trip.DirectionId);
                            variantV2.tripId          = int.Parse(trip.TripId);
                            variantV2.tripHeadsign    = trip.TripHeadsign;
                            foreach (StopTime stopTime in StopTimesCollection)
                            {
                                if (int.Parse(stopTime.RouteId) == Route.RouteId && stopTime.TripId == trip.TripId)
                                {
                                    variantV2.stopTimesTest.Add(stopTime);
                                }
                            }
                            DirectionZero.variants.Add(variantV2);
                        }
                        if (trip.DirectionId == "1")
                        {
                            Variant variantV1 = new Variant();
                            variantV1.stopTimesTest  = new List <StopTime>();
                            DirectionOne.directionId = trip.DirectionId;
                            variantV1.directionId    = int.Parse(trip.DirectionId);
                            variantV1.tripId         = int.Parse(trip.TripId);
                            variantV1.tripHeadsign   = trip.TripHeadsign;
                            foreach (StopTime stopTime in StopTimesCollection)
                            {
                                if (int.Parse(stopTime.RouteId) == Route.RouteId && stopTime.TripId == trip.TripId)
                                {
                                    variantV1.stopTimesTest.Add(stopTime);
                                }
                            }
                            DirectionOne.variants.Add(variantV1);
                        }
                    }
                }
                DirectionsCollection.Add(DirectionOne);
                DirectionsCollection.Add(DirectionZero);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                await App.Current.MainPage.DisplayAlert("Błąd", "Coś poszło nie tak", "OK");
            }
            finally
            {
                IsBusy = false;
            }
        }