Exemplo n.º 1
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            NavigationFrame.Navigating += NavigationFrame_Navigating;
            NavigationFrame.Navigated  += NavigationFrameOnNavigated;
            SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;

            // Get list of patterns
            var patternCategories = (await Patterns.GetCategoriesAsync()).ToList();

            HamburgerMenu.ItemsSource = patternCategories;

            // Options
            HamburgerMenu.OptionsItemsSource = new[]
            {
                new Option {
                    Glyph = "\xE10F", Name = "About", PageType = typeof(About)
                }
            };

            HideInfoArea();
            NavigationFrame.Navigate(typeof(About));

            if (!string.IsNullOrWhiteSpace(e?.Parameter?.ToString()))
            {
                var parser        = DeepLinkParser.Create(e.Parameter.ToString());
                var targetPattern = await Pattern.FindAsync(parser.Root, parser["pattern"]);

                if (targetPattern != null)
                {
                    NavigateToPattern(targetPattern);
                }
            }
        }
Exemplo n.º 2
0
        internal static async Task <Pattern> FindAsync(string category, string name)
        {
            var categories = await Patterns.GetCategoriesAsync();

            return(categories?
                   .FirstOrDefault(c => c.Name.Equals(category, StringComparison.OrdinalIgnoreCase))?
                   .Patterns
                   .FirstOrDefault(s => s.Name.Equals(name, StringComparison.OrdinalIgnoreCase)));
        }