Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        //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));
        }