public async Task <BaseResponseMessage> RemovePublisher(Guid id) { var response = new BaseResponseMessage(); var publisherToRemove = await _publisherRepository.GetPublisher(id); if (publisherToRemove == null) { response.RawData = $"Publisher with {id} wasn't found."; return(response); } var editionsToRemove = await _editionRepository.GetEditionsByBookOrPublisher(id); if (editionsToRemove != null) { editionsToRemove.ForEach(async e => { var covers = await _coverRepository.GetCoversByEdition(e.Id); if (covers != null) { covers.ForEach(c => TryCleanUp(c.LinkTo)); await _coverRepository.RemoveCovers(covers); } }); await _editionRepository.RemoveEditions(editionsToRemove); } await _publisherRepository.RemovePublisher(publisherToRemove); response.Id = id; return(response); }
public async Task <BaseResponseMessage> RemoveSeries(Guid id, bool removeBooks) { var response = new BaseResponseMessage(); var seriesToRemove = await _seriesRepository.GetSeries(id); if (seriesToRemove == null) { response.RawData = $"Series with {id} wasn't found."; return(response); } if (removeBooks) { var editionsToRemove = await _editionRepository.GetEditionsByBookOrPublisher(id); if (editionsToRemove != null) { editionsToRemove.ForEach(async e => { var covers = await _coverRepository.GetCoversByEdition(e.Id); if (covers != null) { covers.ForEach(c => TryCleanUp(c.LinkTo)); await _coverRepository.RemoveCovers(covers); } }); await _editionRepository.RemoveEditions(editionsToRemove); } if (seriesToRemove.BooksInSeries != null) { //TODO: to check out await _bookRepository.RemoveBooks(seriesToRemove.BooksInSeries.Select(x => x.Book)); } } await _seriesRepository.RemoveSerires(seriesToRemove); response.Id = id; return(response); }