public SearchModel Get(string query, int[] categories, int?page = null, int?count = null) { SearchModel res = null; try { int?start = null; if (page > 0 && count >= 0) { start = (page - 1) * count; } var names = SplitQuery(query); var container = _productsManager.Search(names, categories?.Select(x => new Category() { Id = x })?.ToArray(), start, count); res = new SearchModel() { Total = container.Total, Products = container.Products }; } catch (Exception exc) { res = new SearchModel() { Total = 0, Products = null }; } return(res); }