using IStation.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
namespace IStation.WebApi.Controllers
{
///
/// 长江Tide
///
[RoutePrefix("Tide")]
public class TideController : ApiController
{
///
/// 获取最近三天
///
///
///
[Route("GetByDayRange")]
[HttpGet]
public IStation.Dto.ApiResult GetByDayRange(int source, string startday, string endday)
{
string error;
List < Model.TimeWaterLevel > list = null;
if (source == (int)Model.eTideSouce.Web)
{
list = TideFromWebHelper.GetByDayRange(DateTime.Parse(startday), DateTime.Parse(endday) , out error);
}
else if (source == (int)Model.eTideSouce.Monitor)
{
list = TideFromMonitorHelper.GetByDayRange(DateTime.Parse(startday), DateTime.Parse(endday), out error);
}
else
{
list = TideFromBookHelper.GetByDayRange(DateTime.Parse(startday), DateTime.Parse(endday), out error);
}
return new IStation.Dto.ApiResult>(list);
}
///
/// 获取某日
///
///
///
[Route("GetByDay")]
[HttpGet]
public IStation.Dto.ApiResult GetByDay(int source, string day)
{
string error;
List list = null;
if (source == (int)Model.eTideSouce.Web)
{
list = TideFromWebHelper.GetByDay2(DateTime.Parse(day), out error);
}
else if (source == (int)Model.eTideSouce.Monitor)
{
list = TideFromMonitorHelper.GetByDay2(DateTime.Parse(day), out error);
}
else
{
list = TideFromBookHelper.GetByDay2(DateTime.Parse(day), out error);
}
return new IStation.Dto.ApiResult>(list);
}
public class ImportByDayRequest
{
public int source { get; set; }
public string day { get; set; }
public List level { get; set; }
}
///
/// 导入某日
///
///
///
[Route("ImportByDay")]
[HttpPost]
public IStation.Dto.ApiResult ImportByDay(ImportByDayRequest request)
{
var ret = TideFromBookHelper.SaveList(DateTime.Parse(request.day), request.level);
return new IStation.Dto.ApiResult(ret);
}
///
/// 获取web客户端ip
///
///
public static string GetWebClientIp()
{
string userIP = "";
try
{
if (System.Web.HttpContext.Current == null
|| System.Web.HttpContext.Current.Request == null
|| System.Web.HttpContext.Current.Request.ServerVariables == null)
{
return "";
}
string CustomerIP = "";
//CDN加速后取到的IP simone 090805
CustomerIP = System.Web.HttpContext.Current.Request.Headers["Cdn-Src-Ip"];
if (!string.IsNullOrEmpty(CustomerIP))
{
return CustomerIP;
}
CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!String.IsNullOrEmpty(CustomerIP))
{
return CustomerIP;
}
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
{
CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (CustomerIP == null)
{
CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
}
else
{
CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.Compare(CustomerIP, "unknown", true) == 0 || String.IsNullOrEmpty(CustomerIP))
{
return System.Web.HttpContext.Current.Request.UserHostAddress;
}
return CustomerIP;
}
catch { }
return userIP;
}
}
}