Пример #1
0
        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",
            });
        }
Пример #2
0
        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",
            });
        }
Пример #3
0
        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
            });
        }
Пример #4
0
        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",
            });
        }
Пример #5
0
 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",
     };
 }
Пример #6
0
        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;
        }
Пример #7
0
        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
            };
        }
Пример #8
0
        public async Task <ChildRequests> UpdateChildRequest(ChildRequests request)
        {
            await TvRepository.UpdateChild(request);

            await _mediaCacheService.Purge();

            return(request);
        }
Пример #9
0
 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
     };
 }
Пример #10
0
        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
            });
        }
Пример #11
0
        public async Task <ChildRequests> UpdateChildRequest(ChildRequests request)
        {
            await TvRepository.UpdateChild(request);

            return(request);
        }