internal IEnumerable <RoutePointMediaObject> GetMediaObjectsByRouteId(string routeId)
        {
            var points  = RealmInstance.All <RoutePoint>().Where(p => p.RouteId == routeId);
            var objects = RealmInstance.All <RoutePointMediaObject>().ToList().Where(m => (points.Any(p => p.RoutePointId == m.RoutePointId)));

            return(objects);
        }
        internal int GetCountPublishedRoutesByCreator(string UserId)
        {
            List <ViewRoute> vroutes = new List <ViewRoute>();
            var countRoutes          = RealmInstance.All <Route>().Where(u => (u.CreatorId == UserId && u.IsPublished)).Count();

            return(countRoutes);
        }
        /*internal IEnumerable<RoutePoint> GetNotSynced()
         * {
         *  return _realmInstance.All<RoutePoint>().Where(item => !item.ServerSynced);
         * }*/
        internal IEnumerable <RoutePoint> GetPoints()
        {
            var deletedRoutes = RealmInstance.All <Route>().Where(r => r.IsDeleted).ToList().Select(d => d.RouteId);

            return(RealmInstance.All <RoutePoint>().ToList().Where(r => (!deletedRoutes.Any(d => d == r.RouteId))));
            //return _realmInstance.All<RoutePoint>().Where(r=>(!deletedRoutes.Any(d=>d == r.RouteId)));
        }
Beispiel #4
0
        public List <string> GetFullFilenames(string pathToImageDirectory)
        {
            List <string> listCachedImages = new List <string>();
            var           listDbModel      = RealmInstance.All <LocalFile>().Where(l => l.SourcePath.Equals(pathToImageDirectory)).ToList();

            return(listDbModel.Select(l => Path.Combine(pathToImageDirectory, l.SourceFileName)).ToList());
        }
Beispiel #5
0
        public DateTime GetMaxDate(string pathToImageDirectory)
        {
            var localFiles = RealmInstance.All <LocalFile>().Where(l => l.SourcePath.Equals(pathToImageDirectory)).OrderBy(l => l.FileNameDate);
            var maxItem    = localFiles.LastOrDefault();

            return(maxItem?.FileNameDate.DateTime ?? DateTime.Now);
        }
Beispiel #6
0
        internal ViewPoi GetPoiByRoutePointId(string routePointId)
        {
            var poiDb = RealmInstance.All <Poi>().Where(p => !p.IsDeleted && p.ByRoutePointId.Equals(routePointId)).FirstOrDefault();

            if (poiDb != null)
            {
                return(new ViewPoi(poiDb.PoiId));
            }
            return(new ViewPoi());
        }
        public IEnumerable <Tuple <double?, double?> > GetTrackByRoute(string routeId)
        {
            var collectionRealm = RealmInstance.All <RouteTrackPlace>().Where(place => place.RouteTrackId.Equals(routeId))
                                  .OrderBy(place => place.DateTimeBegin).ToList().Select(place => new
            {
                place.Latitude, place.Longitude
            });

            return(collectionRealm.Select(x => new Tuple <double?, double?>(x.Latitude, x.Longitude)));
        }
        internal ObservableCollection <ViewRoute> GetRoutes(string userId)
        {
            ObservableCollection <ViewRoute> vRoutes = new ObservableCollection <ViewRoute>();
            var routes = RealmInstance.All <Route>().Where(u => (!u.IsDeleted && !u.IsPublished) || (!u.IsDeleted && u.IsPublished && u.CreatorId == userId)).OrderByDescending(r => r.CreateDate);

            foreach (var route in routes)
            {
                vRoutes.Add(new ViewRoute(route.RouteId));
            }
            return(vRoutes);
        }
 internal IEnumerable <RoutePointMediaObject> GetNotSyncedMediaObjects(bool OnlyPreview)
 {
     if (OnlyPreview)
     {
         return(RealmInstance.All <RoutePointMediaObject>().Where(x => !x.PreviewServerSynced));
     }
     else
     {
         return(RealmInstance.All <RoutePointMediaObject>().Where(x => !x.OriginalServerSynced));
     }
 }
        internal (ViewRoutePoint, ViewRoutePoint) GetFirstAndLastViewRoutePoints(string routeId)
        {
            var routePoints = RealmInstance.All <RoutePoint>().Where(p => p.RouteId == routeId).OrderBy(p => p.CreateDate);

            if (routePoints.Count() > 0)
            {
                var first = new ViewRoutePoint(routeId, routePoints.FirstOrDefault()?.RoutePointId);
                var last  = new ViewRoutePoint(routeId, routePoints.LastOrDefault()?.RoutePointId);
                return(first, last);
            }
            return(new ViewRoutePoint(), new ViewRoutePoint());
        }
        internal Tuple <RoutePoint, RoutePoint> GetFirstAndLastPoints(string routeId)
        {
            var routePoints = RealmInstance.All <RoutePoint>().Where(p => p.RouteId == routeId).OrderBy(p => p.CreateDate);

            if (routePoints.Count() > 0)
            {
                var first = routePoints.FirstOrDefault();
                var last  = routePoints.LastOrDefault();
                return(new Tuple <RoutePoint, RoutePoint>(first, last));
            }
            return(new Tuple <RoutePoint, RoutePoint>(new RoutePoint(), new RoutePoint()));
        }
Beispiel #12
0
        public List <Tuple <DateTime, int> > GetCountImagesByDay(DateTime dateBegin, DateTime dateEnd,
                                                                 string pathToImageDirectory)
        {
            var countByDays = RealmInstance.All <LocalFile>()
                              .Where(f => f.FileNameDate >= dateBegin && f.FileNameDate <= dateEnd && f.SourcePath.Equals(pathToImageDirectory))
                              .ToList();
            var grouped = countByDays.GroupBy(f =>
                                              new DateTime(f.FileNameDate.Year, f.FileNameDate.Month, f.FileNameDate.Day))
                          .Select(g => new Tuple <DateTime, int>(g.Key, g.Count())).ToList();

            return(grouped);
        }
        /// <summary>
        /// На данном этапе публичные маршруты ничем почти не отличаются от обычных
        /// </summary>
        /// <returns></returns>
        internal IEnumerable <ViewRoute> GetPosts()
        {
            List <ViewRoute> vroutes = new List <ViewRoute>();
            var routes = RealmInstance.All <Route>().Where(r => r.IsPublished && !r.IsDeleted).OrderByDescending(r => r.CreateDate);

            if (routes.Any())
            {
                foreach (var route in routes)
                {
                    vroutes.Add(new ViewRoute(route.RouteId));
                }
            }
            return(vroutes);
        }
        /// <summary>
        /// Возвращает список маршрутов, созданных и опубликованных не текущим пользователем
        /// </summary>
        /// <param name="currentUserId"></param>
        /// <returns></returns>
        internal IEnumerable <ViewRoute> GetPostsOtherCreators(string currentUserId)
        {
            List <ViewRoute> vroutes = new List <ViewRoute>();
            var routes = RealmInstance.All <Route>().Where(r => r.IsPublished && !r.CreatorId.Equals(currentUserId)).OrderByDescending(r => r.CreateDate);

            if (routes.Any())
            {
                foreach (var route in routes)
                {
                    vroutes.Add(new ViewRoute(route.RouteId));
                }
            }
            return(vroutes);
        }
        internal IEnumerable <ViewRoute> GetRoutesForSync()
        {
            List <ViewRoute> vroutes = new List <ViewRoute>();
            var routes = RealmInstance.All <Route>().OrderByDescending(r => r.CreateDate);

            if (routes.Any())
            {
                foreach (var route in routes)
                {
                    vroutes.Add(new ViewRoute(route.RouteId));
                }
            }
            return(vroutes);
        }
        internal ViewRoutePointMediaObject GetFirstMediaObjectByRouteId(string routeId)
        {
            ViewRoutePointMediaObject resultMedia = new ViewRoutePointMediaObject();
            var point = RealmInstance.All <RoutePoint>().Where(p => p.RouteId == routeId && !p.IsDeleted).OrderBy(p => p.CreateDate).ToList().FirstOrDefault();

            if (point != null)
            {
                var media = RealmInstance.All <RoutePointMediaObject>().Where(p => p.RoutePointId == point.RoutePointId && !p.IsDeleted).FirstOrDefault();
                if (media != null)
                {
                    resultMedia.Load(media.RoutePointMediaObjectId);
                }
            }
            return(resultMedia);
        }
Beispiel #17
0
        public List <ViewLocalFile> LocalFilesByDays(DateTime dateBegin, DateTime dateEnd, string pathToImageDirectory)
        {
            var listCachedFiles = RealmInstance.All <LocalFile>().Where(f => f.FileNameDate >= dateBegin && f.FileNameDate <= dateEnd && f.SourcePath.Equals(pathToImageDirectory)).ToList().Select(f => new ViewLocalFile(f.LocalFileId)
            {
                Address              = f.Address,
                Country              = f.Country,
                CreateDate           = f.CreateDate,
                FileNameDate         = f.FileNameDate,
                ImagePreviewFileName = f.ImagePreviewFileName,
                Latitude             = (long)f.Latitude,
                Longitude            = (long)f.Longitude,
                SourceFileName       = f.SourceFileName,
                SourcePath           = f.SourcePath,
                Processed            = f.Processed
            }).ToList();

            return(listCachedFiles);
        }
        public void MergeRoutes(string currentUserId, List <SharedModelsWS.Route> serverRoutes)
        {
            List <string> mergedRoutes = new List <string>();
            var           routes       = RealmInstance.All <Route>().Where(u => (!u.IsDeleted && !u.IsPublished) || (!u.IsDeleted && u.IsPublished && u.CreatorId == currentUserId));

            foreach (var route in routes)
            {
                var vRoute      = new ViewRoute(route.RouteId);
                var serverRoute = serverRoutes.Where(sr => sr.Id.Equals(vRoute.Id)).DefaultIfEmpty().SingleOrDefault();
                if (serverRoute != null)
                {
                    vRoute.ServerSynced = serverRoute.VersionsHash.Equals(vRoute.ObjVerHash);
                }
                else
                {
                    vRoute.ServerSynced = false;
                }
                vRoute.Save();
                mergedRoutes.Add(route.RouteId);
            }

            foreach (var serverRoute in serverRoutes.Where(sr => !mergedRoutes.Contains(sr.Id)))
            {
                var vRoute = new ViewRoute(String.Empty)
                {
                    Id           = serverRoute.Id,
                    Name         = serverRoute.Name,
                    Description  = serverRoute.Description,
                    CreateDate   = serverRoute.CreateDate,
                    CreatorId    = serverRoute.CreatorId,
                    Version      = 0,
                    ImgFilename  = serverRoute.ImgFilename,
                    IsDeleted    = serverRoute.IsDeleted,
                    IsPublished  = serverRoute.IsPublished,
                    UserId       = serverRoute.CreatorId,
                    ObjVerHash   = "",
                    ServerSynced = false
                };
                vRoute.Save();
            }
            ;
        }
Beispiel #19
0
        public List <ViewLocalFile> GetImagesInfo(DateTimeOffset periodStart, DateTimeOffset periodEnd,
                                                  string pathToImageDirectory)
        {
            List <ViewLocalFile> listCachedImages = new List <ViewLocalFile>();
            var listDbModel = RealmInstance.All <LocalFile>().Where(l => l.FileNameDate >= periodStart && l.FileNameDate <= periodEnd && l.SourcePath.Equals(pathToImageDirectory)).OrderBy(l => l.FileNameDate).ToList();

            return(listDbModel.Select(l => new ViewLocalFile(l.LocalFileId)
            {
                Address = l.Address,
                Country = l.Country,
                CreateDate = l.CreateDate,
                FileNameDate = l.FileNameDate,
                ImagePreviewFileName = l.ImagePreviewFileName,
                Latitude = l.Latitude,
                Longitude = l.Longitude,
                SourceFileName = l.SourceFileName,
                SourcePath = l.SourcePath,
                Processed = l.Processed
            }).ToList());
        }
        public bool RemoveAllTracksFromRoute(string routeId)
        {
            bool result = false;

            try
            {
                RealmInstance.Write(() =>
                {
                    RealmInstance.RemoveRange(RealmInstance.All <RouteTrackPlace>()
                                              .Where(p => p.RouteTrackId.Equals(routeId)));
                });
                result = true;
            }
            catch (Exception e)
            {
                HandleError.Process("TrackFileManager", "RemoveAllTracksFromRoute", e, false);
            }

            return(result);
        }
        public bool SaveTrack(string routeId, ViewTrackPlace[] trackResponsePlaces)
        {
            bool result = false;

            try
            {
                RealmInstance.Write(() =>
                {
                    RealmInstance.RemoveRange(RealmInstance.All <RouteTrackPlace>()
                                              .Where(p => p.RouteTrackId.Equals(routeId)));
                    foreach (var place in trackResponsePlaces)
                    {
                        RealmInstance.Add(new RouteTrackPlace()
                        {
                            RouteTrackId  = routeId,
                            Id            = place.Id,
                            Name          = place.Name,
                            Description   = place.Description,
                            DateTimeBegin = place.DateTimeBegin,
                            DateTimeEnd   = place.DateTimeEnd,
                            Latitude      = place.Latitude,
                            Longitude     = place.Longitude,
                            Address       = place.Address,
                            Category      = place.Category,
                            Distance      = place.Distance,
                            Elevation     = place.Elevation
                        });
                    }
                });
                result = true;
            }
            catch (Exception e)
            {
                HandleError.Process("TrackFileManager", "SaveTrack", e, false);
            }

            return(result);
        }
        public IEnumerable <ViewRoutePoint> GetPointsByRouteId(string routeId, bool withDeleted = false)
        {
            List <ViewRoutePoint> collection = new List <ViewRoutePoint>();

            try
            {
                var collectionRealm = withDeleted
                    ? RealmInstance.All <RoutePoint>().Where(point => point.RouteId == routeId)
                                      .OrderBy(point => point.CreateDate)
                    : RealmInstance.All <RoutePoint>().Where(point => point.RouteId == routeId && !point.IsDeleted)
                                      .OrderBy(point => point.CreateDate);
                foreach (var item in collectionRealm)
                {
                    collection.Add(new ViewRoutePoint(item.RouteId, item.RoutePointId));
                }
            }
            catch (Exception e)
            {
                collection = new List <ViewRoutePoint>();
                HandleError.Process("RoutePointManager", "GetPointsByRouteId", e, false);
            }
            return(collection);
        }
 internal RoutePointMediaObject GetMediaObjectById(string mediaId)
 {
     return(RealmInstance.All <RoutePointMediaObject>().SingleOrDefault(x => x.RoutePointMediaObjectId == mediaId));
 }
 internal IEnumerable <RoutePointMediaObject> GetMediaObjectsByRoutePointId(string routePointId)
 {
     return(RealmInstance.All <RoutePointMediaObject>().Where(x => x.RoutePointId == routePointId && !x.IsDeleted));
 }
 public IEnumerable <Route> GetNotSynced()
 {
     return(RealmInstance.All <Route>().Where(item => !item.ServerSynced));
 }
Beispiel #26
0
        internal List <ViewPoi> GetAllAvailablePois(string creatorId)
        {
            var vPois = RealmInstance.All <Poi>().Where(p => !p.IsDeleted && (p.CreatorId.Equals(creatorId) || p.IsPublished)).ToList().Select(p => new ViewPoi(p.PoiId));

            return(vPois.ToList());
        }
Beispiel #27
0
 protected virtual T GetLargestPrimaryKeyQuery(Func <T, object> pkGetter)
 {
     return(RealmInstance.All <T>().OrderByDescending(pkGetter).FirstOrDefault());
 }
Beispiel #28
0
 public bool Exist(string filename, string pathToDcimDirectory, DateTime fileCreationDate)
 {
     return(RealmInstance.All <LocalFile>().Any(f => f.SourceFileName.Equals(filename) && f.FileNameDate == fileCreationDate && f.SourcePath.Equals(pathToDcimDirectory)));
 }
        internal RoutePoint GetPointByCoordinates(double latitude, double longitude)
        {
            var collection = RealmInstance.All <RoutePoint>().Where(point => point.Latitude == latitude && point.Longitude == longitude);

            return(collection.FirstOrDefault());
        }