Exemple #1
0
        private async Task <Negotiator> LoadRequests()
        {
            var settings = await PrSettings.GetSettingsAsync();

            var custom = await CustomizationSettings.GetSettingsAsync();

            return(View["Index", new RequestsIndexViewModel {
                            CustomizationSettings = custom, PlexRequestSettings = settings
                        }]);
        }
Exemple #2
0
        private async Task <Response> GetTvShows()
        {
            var settingsTask = PrSettings.GetSettingsAsync();

            var requests = await Service.GetAllAsync();

            requests = requests.Where(x => x.Type == RequestType.TvShow);

            var dbTv     = requests;
            var settings = await settingsTask;

            if (settings.UsersCanViewOnlyOwnRequests && !IsAdmin)
            {
                dbTv = dbTv.Where(x => x.UserHasRequested(Username)).ToList();
            }

            IEnumerable <QualityModel> qualities = new List <QualityModel>();

            if (IsAdmin)
            {
                try
                {
                    var sonarrSettings = await SonarrSettings.GetSettingsAsync();

                    if (sonarrSettings.Enabled)
                    {
                        var result = Cache.GetOrSetAsync(CacheKeys.SonarrQualityProfiles, async() =>
                        {
                            return(await Task.Run(() => SonarrApi.GetProfiles(sonarrSettings.ApiKey, sonarrSettings.FullUri)));
                        });
                        qualities = result.Result.Select(x => new QualityModel {
                            Id = x.id.ToString(), Name = x.name
                        }).ToList();
                    }
                    else
                    {
                        var sickRageSettings = await SickRageSettings.GetSettingsAsync();

                        if (sickRageSettings.Enabled)
                        {
                            qualities = sickRageSettings.Qualities.Select(x => new QualityModel {
                                Id = x.Key, Name = x.Value
                            }).ToList();
                        }
                    }
                }
                catch (Exception e)
                {
                    Log.Info(e);
                }
            }

            var viewModel = dbTv.Select(tv => new RequestViewModel
            {
                ProviderId          = tv.ProviderId,
                Type                = tv.Type,
                Status              = tv.Status,
                ImdbId              = tv.ImdbId,
                Id                  = tv.Id,
                PosterPath          = tv.PosterPath,
                ReleaseDate         = tv.ReleaseDate,
                ReleaseDateTicks    = tv.ReleaseDate.Ticks,
                RequestedDate       = tv.RequestedDate,
                RequestedDateTicks  = DateTimeHelper.OffsetUTCDateTime(tv.RequestedDate, DateTimeOffset).Ticks,
                Released            = DateTime.Now > tv.ReleaseDate,
                Approved            = tv.Available || tv.Approved,
                Title               = tv.Title,
                Overview            = tv.Overview,
                RequestedUsers      = IsAdmin ? tv.AllUsers.ToArray() : new string[] { },
                ReleaseYear         = tv.ReleaseDate.Year.ToString(),
                Available           = tv.Available,
                Admin               = IsAdmin,
                IssueId             = tv.IssueId,
                TvSeriesRequestType = tv.SeasonsRequested,
                Qualities           = qualities.ToArray(),
                Episodes            = tv.Episodes.ToArray(),
            }).ToList();

            return(Response.AsJson(viewModel));
        }
Exemple #3
0
        private async Task <Negotiator> LoadRequests()
        {
            var settings = await PrSettings.GetSettingsAsync();

            return(View["Index", settings]);
        }
Exemple #4
0
 private async Task <Response> GetPlexRequestSettings()
 {
     return(Response.AsJson(await PrSettings.GetSettingsAsync()));
 }