public async Task <OperationResult <bool> > DeleteRelease(ApplicationUser user, Guid releaseId, bool?doDeleteFiles) { var sw = new Stopwatch(); sw.Start(); var errors = new List <Exception>(); var release = DbContext.Releases.Include(x => x.Artist).FirstOrDefault(x => x.RoadieId == releaseId); try { if (release == null) { await LogAndPublish($"DeleteRelease Unknown Release [{releaseId}]", LogLevel.Warning); return(new OperationResult <bool>(true, $"Release Not Found [{releaseId}]")); } await ReleaseFactory.Delete(release, doDeleteFiles ?? false); } catch (Exception ex) { Logger.LogError(ex); await LogAndPublish("Error deleting release."); errors.Add(ex); } sw.Stop(); await LogAndPublish($"DeleteRelease `{release}`, By User `{user}`", LogLevel.Information); CacheManager.Clear(); return(new OperationResult <bool> { IsSuccess = !errors.Any(), Data = true, OperationTime = sw.ElapsedMilliseconds, Errors = errors }); }