private async Task<RequestEngineResult> AfterRequest(ChildRequests model) { var sendRuleResult = await RunSpecificRule(model, SpecificRules.CanSendNotification); if (sendRuleResult.Success) { NotificationHelper.NewRequest(model); } if (model.Approved) { // Autosend NotificationHelper.Notify(model, NotificationType.RequestApproved); var result = await TvSender.Send(model); if (result.Success) { return new RequestEngineResult { Result = true }; } return new RequestEngineResult { ErrorMessage = result.Message }; } await _requestLog.Add(new RequestLog { UserId = (await GetUser()).Id, RequestDate = DateTime.UtcNow, RequestId = model.Id, RequestType = RequestType.TvShow, }); return new RequestEngineResult { Result = true }; }
public async Task<RequestEngineResult> ApproveChildRequest(int id) { var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == id); if (request == null) { return new RequestEngineResult { ErrorMessage = "Child Request does not exist" }; } request.Approved = true; request.Denied = false; foreach (var s in request.SeasonRequests) { foreach (var ep in s.Episodes) { ep.Approved = true; } } await TvRepository.UpdateChild(request); if (request.Approved) { NotificationHelper.Notify(request, NotificationType.RequestApproved); await Audit.Record(AuditType.Approved, AuditArea.TvRequest, $"Approved Request {request.Title}", Username); // Autosend await TvSender.Send(request); } return new RequestEngineResult { Result = true }; }