public IHttpActionResult GetPrice(SearchMap searchDto) { List <EstimateData> estimateData = null; var repos = new TDAssetRespository(); SetionType sectionT = new SetionType(); /* switch (SectionType) * { * case "1":sectionT = SetionType.Region;break; * case "2": sectionT = SetionType.Provice; break; * case "3": sectionT = SetionType.Amphur; break; * }*/ if (searchDto.costEstUnitType == "2") // ราคาซื้อขาย { estimateData = repos.GetPrice(searchDto); estimateData = estimateData.Where(o => (Converting.ToDecimal(o.MarketWAHPrice) >= Converting.ToDecimal(searchDto.costEstMin) && Converting.ToDecimal(o.MarketWAHPrice) <= Converting.ToDecimal(searchDto.costEstMax))) .OrderByDescending(x => Converting.ToDecimal(x.MarketWAHPriceMax)).ToList(); } else { estimateData = repos.GetPrice(searchDto).Where(o => (Converting.ToDecimal(o.ParcelWAHPrice) >= Converting.ToDecimal(searchDto.costEstMin) && Converting.ToDecimal(o.ParcelWAHPrice) <= Converting.ToDecimal(searchDto.costEstMax))) .OrderByDescending(x => Converting.ToDecimal(x.ParcelWAHPriceMax)).ToList(); } return(Json(estimateData)); }
private List <Models.EstimateData> GetMapInfo(MapSearchCriteria criteria) { List <Models.EstimateData> result = new List <Models.EstimateData>(0); var repos = new TDAssetRespository(); List <EstimateData> searchResult = null; if (criteria.AreaType == "1") { searchResult = repos.GetPrice(new SearchMap() { SectionType = criteria.Type, Code = criteria.ID, ChanodeNo = criteria.ChanodeNo }); } else if (criteria.AreaType == "2") { searchResult = repos.GetCondoPrice(new SearchMap() { SectionType = criteria.Type, Code = criteria.ID, ChanodeNo = criteria.ChanodeNo }); } if (searchResult != null && searchResult.Count() > 0) { if (criteria.CostEstUnitType == "2") // ราคาซื้อขาย { searchResult = searchResult.Where(o => (Converting.ToDecimal(o.MarketWAHPrice) >= Converting.ToDecimal(criteria.CostEstMin) && Converting.ToDecimal(o.MarketWAHPrice) <= Converting.ToDecimal(criteria.CostEstMax))).ToList(); } else { searchResult = searchResult.Where(o => (Converting.ToDecimal(o.ParcelWAHPrice) >= Converting.ToDecimal(criteria.CostEstMin) && Converting.ToDecimal(o.ParcelWAHPrice) <= Converting.ToDecimal(criteria.CostEstMax))).ToList(); } foreach (EstimateData data in searchResult) { data.Name = data.DisplayName; data.MapStructure = new Models.ViewModels.MapStructureInfo() { ParcelDrawingCode = (criteria.AreaType == "2") ? "poin" : data.ParcelColor, MarketDrawingCode = (criteria.AreaType == "2") ? "poin" : data.MarketColor, Shape = data.Shape.ToString() }; data.PriceType = criteria.PriceType; data.CostEstUnitType = criteria.CostEstUnitType; data.AreaType = criteria.AreaType; } } return(searchResult); }
//private List<Models.ViewModels.MAP_ViewModel> GetMapInfo(SetionType type, string code) private List <Models.ViewModels.MAP_ViewModel> GetMapInfo1(MapSearchCriteria criteria) { List <Models.ViewModels.MAP_ViewModel> result = new List <Models.ViewModels.MAP_ViewModel>(0); var repos = new TDAssetRespository(); List <EstimateData> searchResult = null; if (criteria.AreaType == "1") { searchResult = repos.GetPrice(new SearchMap() { SectionType = criteria.Type, Code = criteria.ID, ChanodeNo = criteria.ChanodeNo }); } else if (criteria.AreaType == "2") { searchResult = repos.GetCondoPrice(new SearchMap() { SectionType = criteria.Type, Code = criteria.ID, ChanodeNo = criteria.ChanodeNo }); } if (searchResult != null && searchResult.Count() > 0) { result = searchResult.Select(r => new TDM.Models.ViewModels.MAP_ViewModel() { Name = r.DisplayName, ParcelPrice = criteria.ChanodeNo == null ? DecimalHelper.ToDecimal(r.ParcelPrice, -1) : DecimalHelper.ToDecimal(r.ParcelWAHPrice, -1), ParcelPriceMin = DecimalHelper.ToDecimal(r.ParcelWAHPriceMin, -1), ParcelPriceMax = DecimalHelper.ToDecimal(r.ParcelWAHPriceMax, -1), ParcelPriceAvg = DecimalHelper.ToDecimal(r.ParcelWAHPriceAvg, -1), MarketPrice = criteria.ChanodeNo == null ? DecimalHelper.ToDecimal(r.MarketPrice, -1) : DecimalHelper.ToDecimal(r.ParcelWAHPrice, -1), MarketPriceMin = DecimalHelper.ToDecimal(r.MarketWAHPriceMin, -1), MarketPriceMax = DecimalHelper.ToDecimal(r.MarketWAHPriceMax, -1), MarketPriceAvg = DecimalHelper.ToDecimal(r.MarketWAHPriceAvg, -1), LATITUDE = r.LATITUDE, LONGITUDE = r.LONGITUDE, MapStructure = new Models.ViewModels.MapStructureInfo() { ParcelDrawingCode = (criteria.AreaType == "2")? "poin" : r.ParcelColor, MarketDrawingCode = (criteria.AreaType == "2")? "poin" : r.MarketColor, Shape = r.Shape.ToString() }, MaxPrice = false, MinPrice = false, PriceType = criteria.PriceType, CostEstUnitType = criteria.CostEstUnitType, AreaType = criteria.AreaType }).ToList(); if (result.Count() > 1) { if (criteria.PriceType == "1") { result = result.OrderBy(r => r.ParcelPrice).ToList(); var target = result.Where(rs => rs.ParcelPrice > 0); if (target.Any()) { var max = target.Max(t => t.ParcelPrice); var min = target.Min(t => t.ParcelPrice); if (max != min) { result.Where(rs => rs.ParcelPrice == min).ToList().ForEach(r => r.MinPrice = true); result.Where(rs => rs.ParcelPrice == max).ToList().ForEach(r => r.MaxPrice = true); } } } else { result = result.OrderBy(r => r.MarketPrice).ToList(); var target = result.Where(rs => rs.MarketPrice > 0); if (target.Any()) { var max = target.Max(t => t.MarketPrice); var min = target.Min(t => t.MarketPrice); if (max != min) { result.Where(rs => rs.MarketPrice == min).ToList().ForEach(r => r.MinPrice = true); result.Where(rs => rs.MarketPrice == max).ToList().ForEach(r => r.MaxPrice = true); } } } } result = ExecuteClientCriteria(criteria, result); } return(GetRandomColor(result)); }