コード例 #1
0
        private TraktShowFilter AddStates(bool keepExisting, TraktShowStatus status, params TraktShowStatus[] states)
        {
            var statesList = new List <TraktShowStatus>();

            if (keepExisting && this.States != null && this.States.Length > 0)
            {
                statesList.AddRange(this.States);
            }

            if (status != null && status != TraktShowStatus.Unspecified)
            {
                statesList.Add(status);
            }

            if (states != null && states.Length > 0)
            {
                for (int i = 0; i < states.Length; i++)
                {
                    if (states[i] == null || states[i] == TraktShowStatus.Unspecified)
                    {
                        throw new ArgumentException("status not valid", nameof(states));
                    }
                }

                statesList.AddRange(states);
            }

            this.States = statesList.ToArray();

            return(this);
        }
コード例 #2
0
        public void Test_TraktShowFilterBuilder_GetParameters()
        {
            TraktShowStatus state1 = TraktShowStatus.ReturningSeries;
            TraktShowStatus state2 = TraktShowStatus.InProduction;

            ITraktShowFilter filter = TraktFilterDirectory.ShowFilter
                                      .WithQuery("query")
                                      .WithYears(2016, 2018)
                                      .WithGenres("action", "drama")
                                      .WithLanguages("de", "en")
                                      .WithCountries("gb", "us")
                                      .WithRuntimes(30, 180)
                                      .WithRatings(60, 90)
                                      .WithCertifications("pg-13", "nr")
                                      .WithNetworks("abc", "fox")
                                      .WithStates(state1, state2)
                                      .Build();

            filter.GetParameters().Should().NotBeNull().And.HaveCount(10);

            filter.GetParameters().Should().Contain(new Dictionary <string, object>()
            {
                { "query", "query" },
                { "years", "2016-2018" },
                { "genres", "action,drama" },
                { "languages", "de,en" },
                { "countries", "gb,us" },
                { "runtimes", "30-180" },
                { "ratings", "60-90" },
                { "certifications", "pg-13,nr" },
                { "networks", "abc,fox" },
                { "status", $"{state1.UriName},{state2.UriName}" }
            });
        }
コード例 #3
0
        private void AddStates(bool keepExisting, TraktShowStatus status, params TraktShowStatus[] states)
        {
            var statesList = new List <TraktShowStatus>();

            if (CheckStatus(status))
            {
                statesList.Add(status);
            }

            if (CheckStates(states))
            {
                statesList.AddRange(states);
            }

            if (keepExisting)
            {
                if (_filter.States != null && _filter.States.Length > 0)
                {
                    statesList.InsertRange(0, _filter.States);
                }

                _filter.States = statesList.ToArray();
            }
            else
            {
                _filter.States = statesList.ToArray();
            }
        }
コード例 #4
0
ファイル: TraktShowRepository.cs プロジェクト: spoonys/Listrr
        public async Task <TraktShowStatus> CreateStatus(TraktShowStatus model)
        {
            await _appDbContext.TraktShowStatuses.AddAsync(model);

            await _appDbContext.SaveChangesAsync();

            return(model);
        }
コード例 #5
0
        public void Test_TraktShowFilterBuilder_ToString_With_States()
        {
            TraktShowStatus state1 = TraktShowStatus.ReturningSeries;
            TraktShowStatus state2 = TraktShowStatus.InProduction;

            ITraktShowFilter filter = TraktFilterDirectory.ShowFilter.WithStates(state1, state2).Build();

            filter.ToString().Should().Be($"status={state1.UriName},{state2.UriName}");
        }
コード例 #6
0
        private bool CheckStatus(TraktShowStatus status)
        {
            if (status == null || status == TraktShowStatus.Unspecified)
            {
                throw new ArgumentException("status not valid", nameof(status));
            }

            return(true);
        }
コード例 #7
0
        public void Test_TraktShowFilterBuilder_GetParameters_With_States()
        {
            TraktShowStatus state1 = TraktShowStatus.ReturningSeries;
            TraktShowStatus state2 = TraktShowStatus.InProduction;

            ITraktShowFilter filter = TraktFilterDirectory.ShowFilter.WithStates(state1, state2).Build();

            filter.GetParameters().Should().NotBeNull().And.HaveCount(1);
            filter.GetParameters().Should().Contain(new Dictionary <string, object>()
            {
                { "status", $"{state1.UriName},{state2.UriName}" }
            });
        }
コード例 #8
0
        public void Test_TraktShowFilterBuilder_ToString()
        {
            TraktShowStatus state1 = TraktShowStatus.ReturningSeries;
            TraktShowStatus state2 = TraktShowStatus.InProduction;

            ITraktShowFilter filter = TraktFilterDirectory.ShowFilter
                                      .WithQuery("query")
                                      .WithYears(2016, 2018)
                                      .WithGenres("action", "drama")
                                      .WithLanguages("de", "en")
                                      .WithCountries("gb", "us")
                                      .WithRuntimes(30, 180)
                                      .WithRatings(60, 90)
                                      .WithCertifications("pg-13", "nr")
                                      .WithNetworks("abc", "fox")
                                      .WithStates(state1, state2)
                                      .Build();

            filter.ToString().Should().Be("query=query&years=2016-2018&genres=action,drama&languages=de,en" +
                                          "&countries=gb,us&runtimes=30-180&ratings=60-90&certifications=pg-13,nr" +
                                          $"&networks=abc,fox&status={state1.UriName},{state2.UriName}");
        }
コード例 #9
0
 public T WithStates(TraktShowStatus status, params TraktShowStatus[] states)
 {
     AddStates(false, status, states);
     return((T)this);
 }
コード例 #10
0
 public T AddStates(TraktShowStatus status, params TraktShowStatus[] states)
 {
     AddStates(true, status, states);
     return((T)this);
 }
コード例 #11
0
 /// <summary>Sets the show states parameter and overwrites already existing ones with given show states.</summary>
 /// <param name="status">A show status. See also <seealso cref="TraktShowStatus" />.</param>
 /// <param name="states">An optional array of show states. See also <seealso cref="TraktShowStatus" />.</param>
 /// <returns>The current <see cref="TraktShowFilter" /> instance.</returns>
 /// <exception cref="ArgumentException">Thrown, if one the given show states is unspecified.</exception>
 public TraktShowFilter WithStates(TraktShowStatus status, params TraktShowStatus[] states) => AddStates(false, status, states);
コード例 #12
0
 /// <summary>Adds multiple show states to the already existing show states.</summary>
 /// <param name="status">A show status. See also <seealso cref="TraktShowStatus" />.</param>
 /// <param name="states">An optional array of show states. See also <seealso cref="TraktShowStatus" />.</param>
 /// <returns>The current <see cref="TraktShowFilter" /> instance.</returns>
 /// <exception cref="ArgumentException">Thrown, if one the given show states is unspecified.</exception>
 public TraktShowFilter AddStates(TraktShowStatus status, params TraktShowStatus[] states) => AddStates(true, status, states);
コード例 #13
0
        public void TestTraktShowStatusIsTraktEnumeration()
        {
            var enumeration = new TraktShowStatus();

            enumeration.Should().BeAssignableTo <TraktEnumeration>();
        }