示例#1
0
        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            string queryText = (string)e.Parameter;
            var    svc       = new CatalogServicesClient();
            var    result    = svc.SearchInCatalogAsync(queryText).Result;

            var categoriesGroup = new SampleDataGroup("1", "Categories", "Product categories", string.Empty, string.Empty);
            var categories      = from c in result.Categories
                                  orderby c.Name
                                  select new SampleDataItem(c.Id.ToString(), c.Name, string.Empty, svc.GetImageUrlByCategoryIdAsync(c.Id).Result, c.Description, string.Empty, categoriesGroup)
            {
            };

            categoriesGroup.SetItems(categories);

            var productsGroup = new SampleDataGroup("2", "Products", "Products", string.Empty, string.Empty);
            var products      = from c in result.Products
                                orderby c.Name
                                select new SampleDataItem(c.Id.ToString(), c.Name, string.Empty, string.Empty, string.Empty, string.Empty, productsGroup)
            {
            };

            productsGroup.SetItems(products);

            var groups = new ObservableCollection <SampleDataGroup>()
            {
                categoriesGroup,
                productsGroup
            };

            this.DefaultViewModel["Groups"] = groups;
            //RefreshData();
        }
示例#2
0
        public IEnumerable <SampleDataGroup> Search(string query)
        {
            var result = this.Service.SearchInCatalogAsync(query).Result;

            var categoriesGroup = new SampleDataGroup("1", "Categories", "Product categories", string.Empty, string.Empty);
            var categories      = from c in result.Categories
                                  orderby c.Name
                                  select new SampleDataItem(c.Id.ToString(), c.Name, string.Empty, this.Service.GetImageUrlByCategoryIdAsync(c.Id).Result, c.Description, string.Empty, categoriesGroup)
            {
            };

            categoriesGroup.SetItems(categories);

            var productsGroup = new SampleDataGroup("2", "Products", "Products", string.Empty, string.Empty);
            var products      = from c in result.Products
                                orderby c.Name
                                select new SampleDataItem(c.Id.ToString(), c.Name, string.Empty, string.Empty, string.Empty, string.Empty, productsGroup)
            {
            };

            productsGroup.SetItems(products);

            var groups = new ObservableCollection <SampleDataGroup>()
            {
                categoriesGroup,
                productsGroup
            };

            return(groups);
        }
示例#3
0
        public IEnumerable <SampleDataGroup> Search(string query)
        {
            string url = string.Format("{0}/Catalog/Search?query={1}", baseUrl, query);
            HttpResponseMessage response = new HttpClient().GetAsync(url).Result;
            string responseString        = response.Content.ReadAsStringAsync().Result;

            var result = JsonConvert.DeserializeObject <SearchResult>(responseString);

            var categoriesGroup = new SampleDataGroup("1", "Categories", "Product categories", string.Empty, string.Empty);
            var categories      = from c in result.Categories
                                  let svcUrl                       = string.Format("{0}/Catalog/GetImageUrlByCategoryId/{1}", baseUrl, c.Id)
                                                          let json = new HttpClient().GetAsync(svcUrl).Result.Content.ReadAsStringAsync().Result
                                                                     let imagePath = JsonConvert.DeserializeObject <string>(json)
                                                                                     orderby c.Name
                                                                                     select new SampleDataItem(c.Id.ToString(), c.Name, string.Empty, imagePath, c.Description, string.Empty, categoriesGroup)
            {
            };

            categoriesGroup.SetItems(categories);

            var productsGroup = new SampleDataGroup("2", "Products", "Products", string.Empty, string.Empty);
            var products      = from c in result.Products
                                orderby c.Name
                                select new SampleDataItem(c.Id.ToString(), c.Name, string.Empty, string.Empty, string.Empty, string.Empty, productsGroup)
            {
            };

            productsGroup.SetItems(products);

            var groups = new ObservableCollection <SampleDataGroup>()
            {
                categoriesGroup,
                productsGroup
            };

            return(groups);
        }