public IEnumerable <HistoryData> Post()
        {
            _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"]));
            var type      = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"]));
            var dataType  = int.Parse(HttpContext.Current.Request["type"]);
            var typeStats = _dbContext.Stats.Where(obj => obj.ProType == type);
            var statId    = HttpContext.Current.Request["stat"].Split(',').Select(int.Parse);
            var stats     = typeStats.Where(obj => statId.Contains(obj.Id)).ToArray();

            switch (dataType)
            {
            case 0:
                return(GetMinuteData(stats));

            case 1:
                return(GetHourData(stats));

            case 2:
                return(GetDayData(stats));

            case 3:
                return(GetMinuteFullData(stats));
            }

            return(null);
        }
        public IEnumerable <DistrictDetail> Post()
        {
            _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"]));
            var type     = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"]));
            var district = int.Parse(HttpContext.Current.Request["district"]);
            var country  = _dbContext.Country.First(obj => obj.Id == district);
            var stats    = _dbContext.Stats.Where(obj => obj.ProType == type && obj.Country == country.Id);
            var details  = new List <DistrictDetail>();

            foreach (var stat in stats)
            {
                var min = _dbContext.EsMin.Where(obj => obj.StatId == stat.Id)
                          .OrderByDescending(item => item.UpdateTime)
                          .FirstOrDefault();
                if (min == null)
                {
                    continue;
                }
                var detail = new DistrictDetail
                {
                    districtName = country.Country.Trim(),
                    id           = stat.Id,
                    name         = stat.StatName.Trim(),
                    tsp          = Math.Round(min.TP / 1000.0, 2),
                    rate         = Global.GetRate(min.TP / 1000.0)
                };

                details.Add(detail);
            }
            return(details);
        }
Esempio n. 3
0
        public IEnumerable <DistrictAvg> Post()
        {
            _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"]));
            var type           = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"]));
            var districtGroups = _dbContext.Stats.Where(item => item.ProType == type).GroupBy(obj => obj.Country);

            var avgs = new List <DistrictAvg>();

            foreach (var districtGroup in districtGroups)
            {
                var dis     = new DistrictAvg();
                var country = _dbContext.Country.First(obj => obj.Id == districtGroup.Key);
                dis.name     = country.Country.Trim();
                dis.count    = districtGroup.Count();
                dis.district = districtGroup.Key;
                var total = districtGroup
                            .Select(statse => _dbContext.EsMin
                                    .Where(item => item.StatId == statse.Id)
                                    .OrderByDescending(obj => obj.UpdateTime)
                                    .FirstOrDefault())
                            .Where(obj => obj != null)
                            .Select(min => min.TP).Sum();
                dis.tspAvg = Math.Round(total / dis.count / 1000.0, 2);

                avgs.Add(dis);
            }

            return(avgs);
        }
Esempio n. 4
0
        public Spread Post()
        {
            _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"]));
            var spread = new Spread();
            var proOne = _dbContext.Stats.Where(obj => obj.ProType == "商业地产");
            var mins   = proOne.Select(stat => _dbContext.EsMin
                                       .Where(item => item.StatId == stat.Id)
                                       .OrderByDescending(obj => obj.UpdateTime)
                                       .FirstOrDefault())
                         .Where(obj => obj != null);

            spread.city = _dbContext.Province.First().Province.Trim();
            var road = new Pie
            {
                projectType = 0,
                good        = 1,
                normal      = 0,
                bad         = 0
            };

            spread.pieCharts.Add(road);

            var construction = new Pie
            {
                projectType = 1,
                good        = mins.Count(obj => obj.TP < 400),
                normal      = mins.Count(obj => obj.TP > 400 && obj.TP < 1000),
                bad         = mins.Count(obj => obj.TP > 1000)
            };

            spread.pieCharts.Add(construction);

            var wharf = new Pie
            {
                projectType = 2,
                good        = 1,
                normal      = 0,
                bad         = 0
            };

            spread.pieCharts.Add(wharf);

            var mixingplant = new Pie
            {
                projectType = 3,
                good        = 1,
                normal      = 0,
                bad         = 0
            };

            spread.pieCharts.Add(mixingplant);

            return(spread);
        }
Esempio n. 5
0
        /// <summary>
        /// 获取工地地图信息
        /// </summary>
        /// <returns></returns>
        public IEnumerable <MapStat> Post()
        {
            _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"]));
            var type     = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"]));
            var mapstats = new List <MapStat>();
            var stats    = _dbContext.Stats.Where(obj => obj.ProType == type);

            if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request["district"]))
            {
                var district = int.Parse(HttpContext.Current.Request["district"]);
                stats = stats.Where(obj => obj.Country == district);
            }

            if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request["stat"]))
            {
                var stat = int.Parse(HttpContext.Current.Request["stat"]);
                stats = stats.Where(obj => obj.Country == stat);
            }

            foreach (var stat in stats)
            {
                var min = _dbContext.EsMin.OrderByDescending(obj => obj.UpdateTime)
                          .FirstOrDefault(item => item.StatId == stat.Id);
                var cordinate = Global.ConvertToGdCordinate((double)stat.Longitude, (double)stat.Latitude);
                var mapStat   = new MapStat
                {
                    id        = stat.Id,
                    name      = stat.StatName.Trim(),
                    latitude  = cordinate.Latitude,
                    longitude = cordinate.Longitude
                };
                if (min != null)
                {
                    if (min.UpdateTime != null)
                    {
                        mapStat.time = min.UpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
                    }
                    mapStat.tsp           = Math.Round(min.TP / 1000.0, 2);
                    mapStat.rate          = Global.GetRate(min.TP / 1000.0);
                    mapStat.windSpeed     = min.WindSpeed;
                    mapStat.windDirection = min.WindDirection;
                    mapStat.temperature   = min.Temperature;
                    mapStat.humidity      = min.Humidity;
                }
                mapstats.Add(mapStat);
            }
            return(mapstats);
        }