private async Task GetCategoryContent(string idCategory) { LoadingCounter++; Debug.WriteLine($"going for category :{idCategory}"); var isCategoryCached = await _storageService.Exists(Constants.CATEGORIES + idCategory, new TimeSpan(5, 0, 0, 0)); RESTModels.Category.RootObject category = null; if (isCategoryCached) { Debug.WriteLine($"get from cache category :{idCategory}"); var rd = await _storageService.ReadData(Constants.CATEGORIES + idCategory); category = rd.LoadFromJson <RESTModels.Category.RootObject>(); } else { Debug.WriteLine($"get from service category :{idCategory}"); category = await Broker.GetCategory(idCategory); await _storageService.WriteData(Constants.CATEGORIES + idCategory, category.SaveAsJson()); Debug.WriteLine($"saved category :{idCategory}"); } if (category.image != null) { var c = Categories.Single(o => o.UniqueId == idCategory); c.ImageUrl = category.image.standard; } LoadingCounter--; }
private async Task GetCategoryContent(string idCategory) { LoadingCounter++; try { Debug.WriteLine(string.Format("going for category :{0}", idCategory)); var isCategoryCached = await _storageService.Exists(Constants.CATEGORIES + idCategory, new TimeSpan(1, 0, 0, 0)); RESTModels.Category.RootObject category = null; if (isCategoryCached) { var rd = await _storageService.ReadData(Constants.CATEGORIES + idCategory); category = rd.LoadFromJson <RESTModels.Category.RootObject>(); } else { category = await Broker.GetCategory(idCategory); await _storageService.WriteData(Constants.CATEGORIES + idCategory, category.SaveAsJson()); } if (category.image != null) { var c = Items.SingleOrDefault(o => o.UniqueId == idCategory); if (c != null) { c.ImageUrl = category.image.standard; } } } catch (Exception) { throw; } LoadingCounter--; }
public static ObservableCollection <Models.UI.Category> CreateBreadCrumb(Models.UI.Category selectedCategory, RESTModels.Category.RootObject selectedItem, string root) { var breadCrumb = new ObservableCollection <Models.UI.Category>(); selectedItem.ancestors.Reverse(); for (var i = 1; i < selectedItem.ancestors.Count; i++) { var item = selectedItem.ancestors[i]; var ancestor = selectedItem.ancestors[i - 1]; var itemName = item; if (breadCrumb.Any(o => o.UniqueId == ancestor)) { itemName = itemName.Replace(ancestor + " ", ""); } breadCrumb.Add(new Models.UI.Category { Name = itemName, UniqueId = item, IndexOf = 1 }); } var breadCrumbCategoryName = root; if (selectedItem.ancestors.Count > 1) { for (var i = 0; i < selectedItem.ancestors.Count(); i++) { var ancestor = selectedItem.ancestors[i]; if (breadCrumb.Any(o => o.UniqueId == ancestor)) { breadCrumbCategoryName = i == selectedItem.ancestors.Count - 1 ? breadCrumbCategoryName.Replace(breadCrumb.Single(o => o.UniqueId == ancestor).Name, "") : breadCrumbCategoryName.Replace(ancestor + " ", ""); } } //BreadCrumbCategoryName = BreadCrumbCategoryName;//;.TrimStart(selectedItem.ancestors[selectedItem.ancestors.Count - 1].ToCharArray()); } breadCrumb.Add(new Models.UI.Category { Name = breadCrumbCategoryName, UniqueId = selectedCategory.UniqueId, IndexOf = 1 }); return(breadCrumb); }