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; } } }