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; } }
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); }
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))); }