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
|
{
|
/// <summary>
|
/// 长江Tide
|
/// </summary>
|
[RoutePrefix("Tide")]
|
public class TideController : ApiController
|
{
|
/// <summary>
|
/// 获取最近三天
|
/// </summary>
|
/// <param name="day"></param>
|
/// <returns></returns>
|
[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<Model.TimeWaterLevel>>(list);
|
}
|
|
|
/// <summary>
|
/// 获取某日
|
/// </summary>
|
/// <param name="day"></param>
|
/// <returns></returns>
|
[Route("GetByDay")]
|
[HttpGet]
|
public IStation.Dto.ApiResult GetByDay(int source, string day)
|
{
|
string error;
|
List<Model.TimeWaterLevel> 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<Model.TimeWaterLevel>>(list);
|
}
|
|
|
|
|
public class ImportByDayRequest
|
{
|
public int source { get; set; }
|
public string day { get; set; }
|
public List<Model.TileLevel> level { get; set; }
|
}
|
|
/// <summary>
|
/// 导入某日
|
/// </summary>
|
/// <param name="day"></param>
|
/// <returns></returns>
|
[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<bool>(ret);
|
}
|
|
|
|
/// <summary>
|
/// 获取web客户端ip
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
|
|
|
|
}
|
}
|