public async Task <RequestEngineResult> MarkUnavailable(int modelId, bool is4K) { var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == modelId); if (request == null) { return(new RequestEngineResult { ErrorCode = ErrorCode.ChildRequestDoesNotExist, ErrorMessage = "Child Request does not exist" }); } request.Available = false; foreach (var season in request.SeasonRequests) { foreach (var e in season.Episodes) { e.Available = false; } } await TvRepository.UpdateChild(request); await _mediaCacheService.Purge(); return(new RequestEngineResult { Result = true, Message = "Request is now unavailable", }); }
public async Task <RequestEngineResult> MarkAvailable(int modelId, bool is4K) { ChildRequests request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == modelId); if (request == null) { return(new RequestEngineResult { ErrorCode = ErrorCode.ChildRequestDoesNotExist, ErrorMessage = "Child Request does not exist" }); } request.Available = true; request.MarkedAsAvailable = DateTime.Now; foreach (var season in request.SeasonRequests) { foreach (var e in season.Episodes) { e.Available = true; } } await TvRepository.UpdateChild(request); await NotificationHelper.Notify(request, NotificationType.RequestAvailable); await _mediaCacheService.Purge(); return(new RequestEngineResult { Result = true, Message = "Request is now available", }); }
public async Task <RequestEngineResult> DenyChildRequest(int requestId, string reason) { var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == requestId); if (request == null) { return(new RequestEngineResult { ErrorCode = ErrorCode.ChildRequestDoesNotExist, ErrorMessage = "Child Request does not exist" }); } request.Denied = true; request.DeniedReason = reason; await TvRepository.UpdateChild(request); await _mediaCacheService.Purge(); await NotificationHelper.Notify(request, NotificationType.RequestDeclined); return(new RequestEngineResult { Result = true }); }
public async Task <RequestEngineResult> MarkAvailable(int modelId) { ChildRequests request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == modelId); if (request == null) { return(new RequestEngineResult { ErrorMessage = "Child Request does not exist" }); } request.Available = true; foreach (var season in request.SeasonRequests) { foreach (var e in season.Episodes) { e.Available = true; } } await TvRepository.UpdateChild(request); NotificationHelper.Notify(request, NotificationType.RequestAvailable); return(new RequestEngineResult { Result = true, Message = "Request is now available", }); }
public async Task<RequestEngineResult> MarkUnavailable(int modelId) { var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == modelId); if (request == null) { return new RequestEngineResult { ErrorMessage = "Child Request does not exist" }; } request.Available = false; foreach (var season in request.SeasonRequests) { foreach (var e in season.Episodes) { e.Available = false; } } await TvRepository.UpdateChild(request); return new RequestEngineResult { Result = true, Message = "Request is now unavailable", }; }
public async Task<ChildRequests> UpdateChildRequest(ChildRequests request) { await Audit.Record(AuditType.Updated, AuditArea.TvRequest, $"Updated Request {request.Title}", Username); await TvRepository.UpdateChild(request); return request; }
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 }; }
public async Task <ChildRequests> UpdateChildRequest(ChildRequests request) { await TvRepository.UpdateChild(request); await _mediaCacheService.Purge(); return(request); }
public async Task<RequestEngineResult> DenyChildRequest(int requestId) { var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == requestId); if (request == null) { return new RequestEngineResult { ErrorMessage = "Child Request does not exist" }; } request.Denied = true; await TvRepository.UpdateChild(request); NotificationHelper.Notify(request, NotificationType.RequestDeclined); 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 { ErrorCode = ErrorCode.ChildRequestDoesNotExist, 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; ep.Requested = true; } } await TvRepository.UpdateChild(request); await _mediaCacheService.Purge(); if (request.Approved) { var canNotify = await RunSpecificRule(request, SpecificRules.CanSendNotification, string.Empty); if (canNotify.Success) { await NotificationHelper.Notify(request, NotificationType.RequestApproved); } // Autosend await TvSender.Send(request); } return(new RequestEngineResult { Result = true }); }
public async Task <ChildRequests> UpdateChildRequest(ChildRequests request) { await TvRepository.UpdateChild(request); return(request); }