コード例 #1
0
ファイル: RouteManager.cs プロジェクト: HiP-App/HiP-Forms
            /// <summary>
            /// Deletes a route.
            /// </summary>
            /// <param name="route">The route to be deleted. Passing null does nothing and returns true.</param>
            /// <returns>True iff deletion was successful or <paramref name="route"/> was null.</returns>
            public bool DeleteRoute([CanBeNull] Route route)
            {
                if (route != null)
                {
                    dataAccess.DeleteItem(route);
                }

                return(true);
            }
コード例 #2
0
            /// <summary>
            /// Deletes an exhibit.
            /// </summary>
            /// <param name="exhibit">The exhibit to be deleted. Passing null does nothing and returns true.</param>
            /// <returns>True iff deletion was successful or <paramref name="exhibit"/> was null.</returns>
            public bool DeleteExhibit([CanBeNull] Exhibit exhibit)
            {
                if (exhibit != null)
                {
                    dataAccess.DeleteItem(exhibit);
                }

                return(true);
            }
コード例 #3
0
        public void CleanupRemovedData(ITransactionDataAccess dataAccess)
        {
            //Backup data fake id
            allMedias.Add(-1);

            var routes   = dataAccess.Routes().GetRoutes().ToList();
            var exhibits = dataAccess.Exhibits().GetExhibits().ToList();

            var deletedExhibits  = exhibits.Where(x => !allExhibits.Contains(x.IdForRestApi)).ToList();
            var deletedRoutes    = routes.Where(x => !allRoutes.Contains(x.IdForRestApi));
            var deletedWaypoints = new List <Waypoint>();
            var deletedTags      = new List <RouteTag>();
            var deletedImages    = new List <Image>();
            var deletedAudios    = new List <Audio>();
            var deletedPages     = new List <Page>();

            foreach (var route in routes)
            {
                RemoveWaypoints(route, deletedWaypoints, deletedExhibits);
                RemoveRouteTags(route, deletedTags, deletedImages);
                if (route.Image != null && !allMedias.Contains(route.Image.IdForRestApi))
                {
                    deletedImages.Add(route.Image);
                    route.Image = null;
                }
                if (route.Audio != null && !allMedias.Contains(route.Audio.IdForRestApi))
                {
                    deletedAudios.Add(route.Audio);
                    route.Audio = null;
                }
            }
            foreach (var exhibit in exhibits)
            {
                RemovePages(exhibit, deletedPages, deletedImages, deletedAudios);
                if (exhibit.Image != null && !allMedias.Contains(exhibit.Image.IdForRestApi))
                {
                    deletedImages.Add(exhibit.Image);
                    exhibit.Image = null;
                }
            }

            foreach (var exhibit in deletedExhibits)
            {
                dataAccess.DeleteItem(exhibit);
            }
            foreach (var route in deletedRoutes)
            {
                dataAccess.DeleteItem(route);
            }
            foreach (var waypoint in deletedWaypoints)
            {
                dataAccess.DeleteItem(waypoint);
            }
            foreach (var tag in deletedTags)
            {
                dataAccess.DeleteItem(tag);
            }
            var fileManager = IoCManager.Resolve <IMediaFileManager>();

            foreach (var image in deletedImages)
            {
                dataAccess.DeleteItem(image);
                fileManager.DeleteFile(image.DataPath);
            }
            foreach (var audio in deletedAudios)
            {
                dataAccess.DeleteItem(audio);
                fileManager.DeleteFile(audio.DataPath);
            }
            foreach (var page in deletedPages)
            {
                dataAccess.DeleteItem(page);
            }
        }