private static void ParseProperty(string[] nameVal, SearchQueryModel model) { if (nameVal.Length < 2) { return; } var key = nameVal[0]; if (model.FilterBy.ContainsKey(key)) { return; } model.FilterBy.Add(key, nameVal[1]); }
private static void ParseOrdering(string queryVal, SearchQueryModel model) { var lexems = queryVal.Split('-'); for (int i = 0; i < lexems.Length / 2; i += 2) { if (lexems.Length >= i + 1) { continue; } string propName = lexems[i], dir = lexems[i + 1]; model.OrderBy.Add(propName, dir); } }
protected static SearchQueryModel ParseQuery(string query) { var res = new SearchQueryModel(); var lexems = query.Split('&') .Select(lx => lx.Split('=')) .Where(lexem => lexem.Length > 1); foreach (var nameVal in lexems) { queryLexems.Push(nameVal); string key = nameVal[0].ToLower(); if (parseInstructions.ContainsKey(key)) { parseInstructions[key](nameVal[1], res); } else { ParseProperty(nameVal, res); } } queryLexems.Clear(); return(res); }
private static void SetApplyTrue(string key, SearchQueryModel model) { model.Apply = true; }
private static void SetPageNum(string queryVal, SearchQueryModel model) { uint.TryParse(queryVal, out uint page); model.Page = page; }