예제 #1
0
        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--;
        }
예제 #2
0
        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--;
        }
예제 #3
0
        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);
        }