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