コード例 #1
0
        public WowLadderQueryModel(IDictionary <string, string> parametrs)
        {
            if (parametrs.ContainsKey("locale"))
            {
                BlizzardLocale locale;
                Locale = Enum.TryParse(parametrs["locale"], out locale) ? locale : BlizzardLocale.All;
            }

            if (parametrs.ContainsKey("pvpbracket"))
            {
                WowPvpBracket pvpBracket;
                PvpBracket = Enum.TryParse(parametrs["pvpbracket"], out pvpBracket) ? pvpBracket : WowPvpBracket.All;
            }

            if (parametrs.ContainsKey("wowclass"))
            {
                WowClass wowClass;
                WowClass = Enum.TryParse(parametrs["wowclass"], out wowClass) ? wowClass : WowClass.All;
            }

            if (parametrs.ContainsKey("specid"))
            {
                WowSpec specId;
                WowSpecId = Enum.TryParse(parametrs["specid"], out specId) ? specId : WowSpec.All;
            }
        }
コード例 #2
0
        public IReadOnlyList <PvpApiRowModel> Get(BlizzardLocale locale = BlizzardLocale.All, WowPvpBracket bracket = WowPvpBracket.All,
                                                  WowClass wowClass     = WowClass.All, WowSpec spec = WowSpec.All, uint skip = 0, uint take = 100)
        {
            var query = _liteDbRepo.Query <PvpApiRowModel>();

            if (locale != BlizzardLocale.All)
            {
                query = query.Where(row => row.Locale == (byte)locale);
            }

            if (bracket != WowPvpBracket.All)
            {
                query = query.Where(row => row.Bracket == (byte)bracket);
            }

            if (wowClass != WowClass.All)
            {
                query = query.Where(row => row.ClassId == (byte)wowClass);
            }

            if (spec != WowSpec.All)
            {
                query = query.Where(row => row.SpecId == (ushort)spec);
            }

            query = query.Where(Query.All("Rating"))
                    .Where(Query.All("Name"))
                    .Skip((int)skip)
                    .Limit((int)take);

            IReadOnlyList <PvpApiRowModel> result = query.ToList();

            return(result);
        }
コード例 #3
0
 public Task <IReadOnlyList <PvpApiRowModel> > GetAsync(BlizzardLocale locale = BlizzardLocale.All, WowPvpBracket bracket = WowPvpBracket.All,
                                                        WowClass wowClass     = WowClass.All, WowSpec spec = WowSpec.All, uint skip = 0, uint take = 100)
 {
     return(Task.Run(() => Get(locale, bracket, wowClass, spec, skip, take)));
 }