コード例 #1
0
        public async Task <QueryResult <Region> > GetRegionsAsync(RegionQuery queryObj)
        {
            var result = new QueryResult <Region>();

            var query = context.Regions.AsQueryable();

            // skip world region
            query = query.Where(r => r.Name != RegionConstants.WorldRegionName);
            query = query.ApplyFiltering(queryObj);

            var columnsMap = new Dictionary <string, Expression <Func <Region, object> > >()
            {
                ["parentRegionId"] = v => v.ParentRegionId,
            };

            query = query.ApplyOrdering(queryObj, columnsMap);

            result.TotalItems = await query.CountAsync();

            //query = query.ApplyPaging(queryObj);

            result.Items = await query.ToListAsync();

            return(result);
        }
コード例 #2
0
        public int Region_GetCount(string serializedQuery)
        {
            RegionQuery query = RegionQuery.SerializeHelper.FromXml(
                serializedQuery, typeof(RegionQuery), AllKnownTypes) as RegionQuery;

            return(query.ExecuteScalar <int>());
        }
コード例 #3
0
        public static async void Search(CustomSearchControl SearchControl)
        {
            var         client = Helper.getServiceClient();
            RegionQuery query  = new RegionQuery(); //by default we have an empty query

            if (SearchControl.OptionOne.IsChecked == true)
            {
                query = new RegionQuery()
                {
                    RegionCode = SearchControl.SearchTextBox.Text
                };
            }
            else if (SearchControl.OptionTwo.IsChecked == true)
            {
                query = new RegionQuery()
                {
                    RegionName = SearchControl.SearchTextBox.Text
                };
            }

            int pagesize     = SearchControl.PageSize;
            int pagePosition = SearchControl.PagePosition;
            var response     = await client.QueryRegionAsync(query, pagesize, pagePosition);

            //No response; exit
            if (response == null)
            {
                MessageBox.Show("Service isn't responding, please try again later", "Message", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
            SearchControl.ResultCount = response.TotalResultCount;
            //Fill the datagrid with the results
            SearchControl.ResultsGrid.ItemsSource = new ObservableCollection <FIN_Region>(response.Result.ToList <FIN_Region>());;
        }
コード例 #4
0
        public RegionCollection Region_LoadByDynamic(string serializedQuery)
        {
            RegionQuery query = RegionQuery.SerializeHelper.FromXml(
                serializedQuery, typeof(RegionQuery), AllKnownTypes) as RegionQuery;

            RegionCollection coll = new RegionCollection();

            coll.es.IsLazyLoadDisabled = true;
            coll.Load(query);
            return(coll);
        }
コード例 #5
0
        public RegionProxyStub Region_QueryForEntity(string serializedQuery)
        {
            RegionQuery query = RegionQuery.SerializeHelper.FromXml(
                serializedQuery, typeof(RegionQuery), AllKnownTypes) as RegionQuery;

            Region obj = new Region();

            if (obj.Load(query))
            {
                return(obj);
            }

            return(null);
        }
コード例 #6
0
        public RegionCollectionProxyStub Region_QueryForCollection(string serializedQuery)
        {
            RegionQuery query = RegionQuery.SerializeHelper.FromXml(
                serializedQuery, typeof(RegionQuery), AllKnownTypes) as RegionQuery;

            RegionCollection coll = new RegionCollection();

            if (coll.Load(query))
            {
                return(coll);
            }

            return(null);
        }
コード例 #7
0
        public async Task Search_Get_CanPerformIS24ChannelSearch()
        {
            RestClient.RespondWith(r =>
            {
                Assert.Equal(Method.GET, r.Method);
                var url = "https://rest.sandbox-immobilienscout24.de/restapi/api/search/v1.0/search/region";
                Assert.Equal(url, RestClient.BuildUri(r).GetLeftPart(UriPartial.Path));
                var parms = RestClient.BuildUri(r).ParseQueryString();
                Assert.Equal("is24", parms["channel"]);
                return(new IS24RestApi.Search.ResultList.Resultlist
                {
                    ResultlistEntries =
                    {
                        new ResultlistEntries
                        {
                            ResultlistEntry =
                            {
                                new ResultlistEntry {
                                    RealEstate = new ApartmentRent{
                                        Id = 4711
                                    }
                                },
                                new ResultlistEntry {
                                    RealEstate = new ApartmentRent{
                                        Id = 4712
                                    }
                                },
                            }
                        }
                    }
                });
            });

            var query = new RegionQuery
            {
                RealEstateType = Common.RealEstateType.APARTMENT_RENT,
                GeoCodeId      = new GeoCodeId {
                    Continent = 1, Country = 2, Region = 3, City = 4, Quarter = 5
                },
                Features = { Feature.Grouping, Feature.MatchCount },
                Channel  = Channel.IS24Channel
            };

            var res = await Client.Search(query, 4, 10);
        }
コード例 #8
0
ファイル: ConfigDal.cs プロジェクト: meetTime/aigdzc
        public static List <RegionResponse> GetRegionList(RegionQuery query)
        {
            Hashtable ht = new Hashtable();
            List <StatementCondition> list = new List <StatementCondition>();

            if (query.RegionIds != null & query.RegionIds.Count > 0)
            {
                ht.Add("RegionIds", DbUtils.ToWhereInParam(query.RegionIds));
                list.Add(new StatementCondition("RegionIds", true));
            }
            if (query.ParentId.HasValue)
            {
                ht.Add("ParentId", query.ParentId.Value);
                list.Add(new StatementCondition("ParentId", true));
            }
            if (!string.IsNullOrEmpty(query.Name))
            {
                ht.Add("Name", query.Name);
                list.Add(new StatementCondition("Name", true));
            }
            return(DataSources.Default.QueryCollection <RegionResponse>("GetRegion", null, list, ht).ToList());
        }
コード例 #9
0
 protected virtual List<Record> Search(RegionQuery window, Node node)
 {
     List<Record> records = new List<Record>();
     foreach (NodeEntry nodeEntry in node.NodeEntries)
     {
         if (window is RangeQuery && Overlaps((RangeQuery)window, nodeEntry.MinimumBoundingBox) ||
             window is WindowQuery && Overlaps((WindowQuery)window, nodeEntry.MinimumBoundingBox))
             if (nodeEntry is LeafEntry)
                 records.Add(Cache.LookupRecord(nodeEntry.Child));
             else
                 records.AddRange(Search(window, Cache.LookupNode(nodeEntry.Child)));
     }
     return records;
 }
コード例 #10
0
        public static IQueryable <Region> ApplyFiltering(this IQueryable <Region> query, RegionQuery queryObj)
        {
            if (queryObj.ParentRegionId.HasValue)
            {
                query = query.Where(v => v.ParentRegionId == queryObj.ParentRegionId.Value);
            }

            return(query);
        }
コード例 #11
0
        public static List <RegionResponse> GetRegionList(RegionQuery query)
        {
            var list = ConfigDal.GetRegionList(query);

            return(list);
        }
コード例 #12
0
        public async Task Search_Get_CanPerformRegionSearch()
        {
            RestClient.RespondWith(r =>
            {
                Assert.Equal(Method.GET, r.Method);
                var url = "https://rest.sandbox-immobilienscout24.de/restapi/api/search/v1.0/search/region";
                Assert.Equal(url, RestClient.BuildUri(r).GetLeftPart(UriPartial.Path));
                var parms = RestClient.BuildUri(r).ParseQueryString();
                Assert.Equal("grouping,matchcount", parms["features"]);
                Assert.Equal("apartmentrent", parms["realestatetype"]);
                Assert.Equal("1002003004005", parms["geocodes"]);
                Assert.Equal("-1000.00", parms["price"]);
                Assert.Equal("rentpermonth", parms["pricetype"]);
                Assert.Equal("true", parms["freeofcourtageonly"]);
                Assert.Equal("-distance", parms["sort"]);
                Assert.Equal("4", parms["pagenumber"]);
                Assert.Equal("10", parms["pagesize"]);
                Assert.Equal("balcony,garden,lift", parms["equipment"]);
                Assert.Equal("test", parms["channel"]);
                return(new IS24RestApi.Search.ResultList.Resultlist
                {
                    ResultlistEntries =
                    {
                        new ResultlistEntries
                        {
                            ResultlistEntry =
                            {
                                new ResultlistEntry {
                                    RealEstate = new ApartmentRent{
                                        Id = 4711
                                    }
                                },
                                new ResultlistEntry {
                                    RealEstate = new ApartmentRent{
                                        Id = 4712
                                    }
                                },
                            }
                        }
                    }
                });
            });

            var query = new RegionQuery
            {
                RealEstateType = Common.RealEstateType.APARTMENT_RENT,
                GeoCodeId      = new GeoCodeId {
                    Continent = 1, Country = 2, Region = 3, City = 4, Quarter = 5
                },
                Features   = { Feature.Grouping, Feature.MatchCount },
                Parameters = new Dictionary <string, object>
                {
                    { "Price", new DecimalRange {
                          Max = 1000
                      } },
                    { "PriceType", "rentpermonth" },
                    { "FreeOfCourtageOnly", true },
                    { "Equipment", new[] { "balcony", "garden", "lift" } }
                },
                Sort          = Sorting.Distance,
                SortDirection = ListSortDirection.Descending,
                Channel       = new GroupChannel("test")
            };

            var res = await Client.Search(query, 4, 10);

            Assert.Equal(2, res.ResultlistEntries[0].ResultlistEntry.Count);
            Assert.Equal(4711, res.ResultlistEntries[0].ResultlistEntry[0].RealEstate.Id);
            Assert.Equal(4712, res.ResultlistEntries[0].ResultlistEntry[1].RealEstate.Id);
        }