private void Category_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            try
            {
                if (NetworkInterface.GetIsNetworkAvailable())
                {
                    CategoryDetailsModel category = ((CategoryDetailsModel)((sender as FrameworkElement).DataContext));

                    if (category != null)
                    {
                        NavigationService.Navigate(new Uri("/Views/CategoryPages/CategoryPage.xaml?category=" + category.CategoryName, UriKind.Relative));
                    }
                }
                else
                {
                    NavigationService.Navigate(new Uri("/Views/NetworkError.xaml", UriKind.Relative));
                }
            }
            catch (Exception exception)
            {
                if (Debugger.IsAttached)
                {
                    Debug.WriteLine("MainPage.xaml.cs:" + exception);
                }
            }
        }
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                CategoryDetailsModel category = ((CategoryDetailsModel)((sender as FrameworkElement).DataContext));
                if (category != null)
                {
                    ViewModelLocator viewModelLocator = App.Current.Resources["Locator"] as ViewModelLocator;
                    if (category.IsPinned == false)
                    {
                        category.IsPinned = true;
                        await viewModelLocator.DataService.AddFavCategoryAsync(category.CategoryName);

                        viewModelLocator.MainViewModel.FavCategories.Add(category);
                    }
                    else
                    {
                        category.IsPinned = false;
                        await viewModelLocator.DataService.RemoveFavCategoryAsync(category.CategoryName);

                        CategoryDetailsModel tempCategory = null;
                        foreach (CategoryDetailsModel item in viewModelLocator.MainViewModel.FavCategories)
                        {
                            if (item.CategoryName == category.CategoryName)
                            {
                                tempCategory = item;
                                break;
                            }
                        }
                        if (tempCategory != null)
                        {
                            viewModelLocator.MainViewModel.FavCategories.Remove(tempCategory);
                        }
                    }

                    if (viewModelLocator.MainViewModel.FavCategories.Count > 0)
                    {
                        viewModelLocator.MainViewModel.IsNoFavorites = false;
                    }
                    else
                    {
                        viewModelLocator.MainViewModel.IsNoFavorites = true;
                    }
                }
            }
            catch (Exception exception)
            {
                if (Debugger.IsAttached)
                {
                    Debug.WriteLine("MainPage.xaml.cs:" + exception);
                }
            }
        }
        public IActionResult Index(Guid id)
        {
            var category      = _categoryRepository.GetCategory(id) ?? _categoryRepository.GetFirstCategory();
            var subcategories = _subcategoryRepository.GetSubcategories(category.Id).ToList();
            var vm            = new CategoryDetailsModel()
            {
                Id            = category.Id,
                Name          = category.Name,
                Slug          = category.Slug,
                Subcategories = Mapper.Map <IEnumerable <Subcategory>, IList <SubcategoryIndexModel> >(subcategories),
            };

            return(View(vm));
        }