using IStation.Common;
using IStation.Dto;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
namespace IStation.WebApi.Controllers
{
///
/// 水库水位
///
[RoutePrefix("ReservoirWaterLevel")]
public class ReservoirWaterLevelController : ApiController
{
///
/// 获取实时值
///
///
[Route("GetRealValue")]
[HttpGet]
public async Task GetRealValue()
{
var d = await ZyConnectHelper.GetRealReservoirWaterLevel();
return new IStation.Dto.ApiResult(d);
}
///
/// 获取今日预测值(24点时)
///
///
[Route("GetTodayEndPredictiveValue")]
[HttpGet]
public async Task GetTodayEndPredictiveValue()
{
var now_value = await ZyConnectHelper.GetRealReservoirWaterLevel();
var today_prj = Common.HistoryAnaPrjFileHelper.GetPrj(DateTime.Today);
if(today_prj == null || today_prj.BlockTimes == null || today_prj.PointTimes == null)
{
return new IStation.Dto.ApiResult(-100);
}
var now = DateTime.Now;
double predictiveValue = now_value;
foreach(var pt in today_prj.PointTimes)
{
if (now > pt.Time)
{
predictiveValue = now_value + today_prj.PointTimes.Last().WaterLevelH - pt.WaterLevelH;
return new IStation.Dto.ApiResult(predictiveValue);
}
}
return new IStation.Dto.ApiResult(now_value);
}
}
}