public async Task DeleteUpload(UploadLog uploadLog, string reason) { Log.Information($"Deleting UploadLog with ID '{uploadLog.Id}' (reply '{uploadLog.ReplyFullname}')"); if (!uploadLog.UploadDeleted) { switch (uploadLog.UploadDestination.ToLower()) { case "imgur": uploadLog.UploadDeleted = await imgurClient.Delete(uploadLog.UploadDeleteKey); break; case "gfycat": uploadLog.UploadDeleted = await gfycatClient.Delete(uploadLog.UploadDeleteKey); break; default: throw new NotImplementedException($"Unimplemented delete from upload destination '{uploadLog.UploadDestination}'."); } } if (!uploadLog.ReplyDeleted) { await redditClient.DeletePost(uploadLog.ReplyFullname); uploadLog.ReplyDeleted = true; } if (uploadLog.DeleteDatetime == null) { uploadLog.DeleteDatetime = DateTime.UtcNow; uploadLog.DeleteReason = reason; } databaseAccessor.UpdateUploadLog(uploadLog); Log.Information($"Deleted post '{uploadLog.ReplyFullname}'."); }