public ActionResult HydroPost(int SiteCode)
        {
            var theSite = HydroDataCenterEntity.Models.Site.GetByCode(SiteCode, 2);

            if (theSite == null)
            {
                return(Content("Гидрологический пост не найден " + SiteCode.ToString()));
            }

            ViewBag.SiteID   = theSite.ID;
            ViewBag.SiteName = theSite.Name;
            ViewBag.SiteCode = SiteCode;
            int SiteExtID = theSite.ExtID;

            try
            {
                var theHydro = new HydroDataCenterEntity.HydroService.HydroServiceClient();

                DateTime dateEnd = DateTime.UtcNow;
                DateTime dateBgn = dateEnd.AddDays(-30);


                ViewBag.SeriesHydroPost = "";
                var theHydroPost = HydroDataCenterEntity.Models.Site.GetByCode(SiteCode, 2 /*ГП*/);
                ViewBag.HydroPost = theHydroPost;
                var ListResult = theHydro.GetDataValues(theHydroPost.ExtID, dateBgn, dateEnd, 2, null, null, null);
                ViewBag.CurrentLevelHydroPost = -999;
                if (ListResult != null)
                {
                    foreach (var item in ListResult)
                    {
                        string series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", item.DateUTC.Year, item.DateUTC.Month - 1, item.DateUTC.Day, item.DateUTC.Hour, item.Value.ToString().Replace(',', '.'));
                        ViewBag.SeriesHydroPost += series;
                    }

                    ViewBag.CurrentLevelHydroPost = ListResult.Last().Value;
                }

                if (ViewBag.SeriesHydroSeries == "")
                {
                    return(Content("Нет данных"));
                }

                var ListCriteria = theHydro.GetSiteCriterias(theSite.ExtID);


                if (ListCriteria != null)
                {
                    foreach (var criteria in ListCriteria)
                    {
                        switch (criteria.Type.Id)
                        {
                        case 1:
                            string series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateBgn.Year, dateBgn.Month - 1, dateBgn.Day, dateBgn.Hour, criteria.BeginValue.ToString().Replace(',', '.'));
                            ViewBag.SeriesCriteria01 += series;
                            series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.Year, dateEnd.Month - 1, dateEnd.Day, dateEnd.Hour, criteria.BeginValue.ToString().Replace(',', '.'));
                            ViewBag.SeriesCriteria01     += series;
                            ViewBag.SeriesCriteriaName01 += criteria.Type.Comment;
                            break;

                        case 2:
                            series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateBgn.Year, dateBgn.Month - 1, dateBgn.Day, dateBgn.Hour, criteria.BeginValue.ToString().Replace(',', '.'));
                            ViewBag.SeriesCriteria02 += series;
                            series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.Year, dateEnd.Month - 1, dateEnd.Day, dateEnd.Hour, criteria.BeginValue.ToString().Replace(',', '.'));
                            ViewBag.SeriesCriteria02     += series;
                            ViewBag.SeriesCriteriaName02 += criteria.Type.Comment;
                            break;

                        case 3:
                            series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateBgn.Year, dateBgn.Month - 1, dateBgn.Day, dateBgn.Hour, criteria.BeginValue.ToString().Replace(',', '.'));
                            ViewBag.SeriesCriteria03 += series;
                            series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.Year, dateEnd.Month - 1, dateEnd.Day, dateEnd.Hour, criteria.BeginValue.ToString().Replace(',', '.'));
                            ViewBag.SeriesCriteria03     += series;
                            ViewBag.SeriesCriteriaName03 += criteria.Type.Comment;
                            break;
                        }
                    }
                }

                //float forecast00 = 238;
                //float forecast01 = 217;
                //float forecast02 = 228;
                //float forecast03 = 223;
                //float forecast04 = 215;
                //float forecast05 = 215;
                //string series01 = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.Year, dateEnd.Month - 1, dateEnd.AddDays(-1).Day, ListResult.Last().DateUTC.Hour, forecast00.ToString().Replace(',', '.'));
                //ViewBag.SeriesForecast += series01;
                //series01 = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.AddDays(1).Year, dateEnd.AddDays(1).Month - 1, dateEnd.AddDays(1).Day, dateEnd.AddDays(1).Hour, forecast01.ToString().Replace(',', '.'));
                //ViewBag.SeriesForecast += series01;
                //series01 = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.AddDays(2).Year, dateEnd.AddDays(2).Month - 1, dateEnd.AddDays(2).Day, dateEnd.AddDays(2).Hour, forecast02.ToString().Replace(',', '.'));
                //ViewBag.SeriesForecast += series01;
                //series01 = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.AddDays(1).Year, dateEnd.AddDays(3).Month - 1, dateEnd.AddDays(3).Day, dateEnd.AddDays(3).Hour, forecast03.ToString().Replace(',', '.'));
                //ViewBag.SeriesForecast += series01;
                //series01 = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.AddDays(4).Year, dateEnd.AddDays(4).Month - 1, dateEnd.AddDays(4).Day, dateEnd.AddDays(4).Hour, forecast04.ToString().Replace(',', '.'));
                //ViewBag.SeriesForecast += series01;
                //series01 = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", dateEnd.AddDays(5).Year, dateEnd.AddDays(5).Month - 1, dateEnd.AddDays(5).Day, dateEnd.AddDays(5).Hour, forecast05.ToString().Replace(',', '.'));

                return(View());
            }
            catch (Exception ex)
            {
                string err = ex.Message;
                return(Content(err));
            }
        }
        //
        // GET: /Chart/Level

        public ActionResult Level(int SiteID, int SiteCode, int SiteExtID, int SiteTypeID, string SiteName)
        {
            ViewBag.SiteID   = SiteID;
            ViewBag.SiteName = SiteName;
            ViewBag.SiteCode = SiteCode;

            try
            {
                var theHydro = new HydroDataCenterEntity.HydroService.HydroServiceClient();

                DateTime dateEnd = DateTime.UtcNow;
                DateTime dateBgn = dateEnd.AddDays(-5);

                ViewBag.Min = 10999;
                ViewBag.Max = 0;

                ViewBag.SeriesAGK = "";
                var ListResult = theHydro.GetDataValues(SiteExtID, dateBgn, dateEnd, 2, null, null, null);
                ViewBag.CurrentLevelAGK = -999;
                if (ListResult != null)
                {
                    foreach (var item in ListResult)
                    {
                        if (item.Value < -900 || item.Value > 1900)
                        {
                            continue;
                        }

                        item.Value += Popravka(SiteCode, item.DateUTC);

                        string series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", item.DateUTC.Year, item.DateUTC.Month - 1, item.DateUTC.Day, item.DateUTC.Hour, item.Value.ToString().Replace(',', '.'));
                        ViewBag.SeriesAGK += series;
                        if (ViewBag.Min > (int)item.Value)
                        {
                            ViewBag.Min = (int)item.Value;
                        }

                        if (ViewBag.Max < (int)item.Value)
                        {
                            ViewBag.Max = (int)item.Value;
                        }
                        ViewBag.CurrentLevelAGK = ListResult.Last().Value;
                    }
                }


                ViewBag.SeriesHydroPost = "";
                var theHydroPost = HydroDataCenterEntity.Models.Site.GetByCode(SiteCode, 2 /*ГП*/);
                ViewBag.HydroPost             = theHydroPost;
                ListResult                    = theHydro.GetDataValues(theHydroPost.ExtID, dateBgn, dateEnd, 2, null, null, null);
                ViewBag.CurrentLevelHydroPost = -999;
                if (ListResult != null)
                {
                    foreach (var item in ListResult)
                    {
                        string series = String.Format("[Date.UTC({0}, {1}, {2}, {3}, 0, 0 ), {4}],", item.DateUTC.Year, item.DateUTC.Month - 1, item.DateUTC.Day, item.DateUTC.Hour, item.Value.ToString().Replace(',', '.'));
                        ViewBag.SeriesHydroPost += series;

                        if (ViewBag.Min > (int)item.Value)
                        {
                            ViewBag.Min = (int)item.Value;
                        }

                        if (ViewBag.Max < (int)item.Value)
                        {
                            ViewBag.Max = (int)item.Value;
                        }
                    }

                    ViewBag.CurrentLevelHydroPost = ListResult.Last().Value;
                }



                if (ViewBag.SeriesAGK == "" && ViewBag.SeriesHydroSeries == "")
                {
                    return(Content("Нет данных"));
                }

                return(View());
            }
            catch (Exception ex)
            {
                string err = ex.Message;
                return(Content(err));
            }
        }
        public ActionResult Datas(int SiteCode)
        {
            try
            {
                HydroDataCenterEntity.Models.Site theSiteAgk       = HydroDataCenterEntity.Models.Site.GetByCode(SiteCode, 6);
                HydroDataCenterEntity.Models.Site theSiteHydroPost = HydroDataCenterEntity.Models.Site.GetByCode(SiteCode, 2);

                ViewBag.theSiteAgk = theSiteAgk;

                var theHydro = new HydroDataCenterEntity.HydroService.HydroServiceClient();

                DateTime dateEnd = DateTime.UtcNow;
                DateTime dateBgn = dateEnd.AddDays(-5);

                var ListResult          = theHydro.GetDataValues(theSiteAgk.ExtID, dateBgn, dateEnd, 2, null, null, null);
                var ListResultHydroPost = theHydro.GetDataValues(theSiteHydroPost.ExtID, dateBgn, dateEnd, 2, null, null, null);

                ViewBag.theDataValuesAgk = ListResult;

                HydroDataCenterWeb.Models.DataValues theData = new DataValues();
                theData.SiteCode = SiteCode;


                for (var dateCurr = dateBgn; dateCurr <= dateEnd; dateCurr = dateCurr.AddHours(1))
                {
                    int i = dateCurr.Hour;
                    //for (int i = 0; i < 24; i++)
                    {
                        DataValues.Value theValue = new DataValues.Value();
                        theValue.DateUTC = new DateTime(dateCurr.Year, dateCurr.Month, dateCurr.Day, i, 0, 0);



                        if (ListResult != null && ListResult.Count() > 0)
                        {
                            var valueWhere = ListResult.Where(x => x.DateUTC.Year == dateCurr.Year && x.DateUTC.Month == dateCurr.Month && x.DateUTC.Day == dateCurr.Day && x.DateUTC.Hour == i).ToList();
                            if (valueWhere != null)
                            {
                                if (valueWhere.Count() > 0)
                                {
                                    theValue.valueAgk = valueWhere.Last().Value;
                                    theValue.Date     = valueWhere.Last().Date;
                                }
                            }
                        }


                        if (ListResultHydroPost != null && ListResultHydroPost.Count() > 0)
                        {
                            var valueWhere = ListResultHydroPost.Where(x => x.DateUTC.Year == dateCurr.Year && x.DateUTC.Month == dateCurr.Month && x.DateUTC.Day == dateCurr.Day && x.DateUTC.Hour == i).ToList();
                            if (valueWhere != null)
                            {
                                if (valueWhere.Count() > 0)
                                {
                                    theValue.valueHydroPost = valueWhere.Last().Value;
                                }
                            }
                        }

                        if (dateCurr.Hour == 10 || dateCurr.Hour == 22)
                        {
                            theValue.delta = Math.Abs(theValue.valueAgk - theValue.valueHydroPost);
                        }

                        theData.theValueList.Add(theValue);
                    }
                }

                return(View(theData));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }