關閉
標題:.net core include.cs
內容:
using GFLib.Database;
using Microsoft.Data.SqlClient;
using System.Collections;
using System.Data;
using System.Net;
using Microsoft.Extensions.Configuration;
namespace utility
{
public class myinclude
{
public myinclude()
{
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
}
public Dictionary<string, object> getGET_POST(HttpContext context, string inputs, string method)
{
/*
string GETS_STRING="mode,id";
Dictionary<string, object> get = x.getGET_POST(GETS_STRING, "GET");
string vv=x.print_r(get,0);
foreach (string a in get.Keys)
{
Response.Write(a+":"+get[a]+"<br>");
}
sample:
string GETS_STRING="mode,id";
Dictionary<string, object> get = x.getGET_POST(GETS_STRING, "GET");
string POSTS_STRING ="abc,b,s_a,s_b[],ddd";
Dictionary<string, object> post = x.getGET_POST(POSTS_STRING, "POST");
string q = x.print_r(get, 0);
string p = x.print_r(post, 0);
Response.Write("<pre>" + q + "<br>" + p + "</pre>");
Response.Write("aaaaaaa->" + post["s_a"]+"<br>");
Response.Write("aaaaaab->" + post["s_b[]"] + "<br>");
*
*/
method = method.ToUpper();
Dictionary<string, object> get_post = new Dictionary<string, object>();
switch (method)
{
case "GET":
foreach (string k in inputs.Split(','))
{
if (context.Request.Query.ContainsKey(k))
{
get_post[k] = context.Request.Query[k];
}
else
{
get_post[k] = "";
}
}
break;
case "POST":
foreach (string k in inputs.Split(','))
{
if (context.Request.Form.ContainsKey(k))
{
if (context.Request.Form[k].Count() != 1)
{
//暫時先這樣,以後再修= =
//alert(this.Context.Request.Form.GetValues(k).Length.ToString());
get_post[k] = implode("┃", context.Request.Form[k]);
}
else
{
get_post[k] = context.Request.Form[k];
}
}
else
{
get_post[k] = "";
}
}
break;
}
return get_post;
}
public string implode(string keyword, string[] arrays)
{
return string.Join(keyword, arrays);
}
public string implode(string keyword, List<string> arrays)
{
return string.Join<string>(keyword, arrays);
}
public string implode(string keyword, Dictionary<int, string> arrays)
{
string[] tmp = new String[arrays.Keys.Count];
int i = 0;
foreach (int k in arrays.Keys)
{
tmp[i++] = arrays[k];
}
return string.Join(keyword, tmp);
}
public string implode(string keyword, Dictionary<string, string> arrays)
{
string[] tmp = new String[arrays.Keys.Count];
int i = 0;
foreach (string k in arrays.Keys)
{
tmp[i++] = arrays[k];
}
return string.Join(keyword, tmp);
}
public string implode(string keyword, ArrayList arrays)
{
string[] tmp = new String[arrays.Count];
for (int i = 0; i < arrays.Count; i++)
{
tmp[i] = arrays[i].ToString();
}
return string.Join(keyword, tmp);
}
public MsSql linkToDB()
{
//IServiceCollection services;
//string connString = services.Configure<AppSettings>("DBConnection");
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) // 设置配置文件的基础路径
.AddJsonFile("appsettings.json") // 指定要加载的 JSON 配置文件
.Build();
string connString = configuration["DB:DBConnection"].ToString();
return new GFLib.Database.MsSql(connString);
}
public DataTable selectSQL_SAFE(string SQL, Dictionary<string, string> m)
{
return selectSQL_SAFE(SQL, m, 0);
}
public DataTable selectSQL_SAFE(string SQL, Dictionary<string, string> m, int retry_times = 0)
{
if (retry_times >= 30) { return null; }
try
{
var PDO = linkToDB();
var pa = new ArrayList();
List<string> fields = new List<string>();
List<string> Q_fields = new List<string>();
foreach (string n in m.Keys)
{
fields.Add(n);
Q_fields.Add("@" + n);
pa.Add(new SqlParameter { ParameterName = "@" + n, SqlDbType = SqlDbType.NVarChar, Value = m[n] });
}
var ra = PDO.Select(SQL, pa);
PDO.Dispose();
return ra;
}
catch
{
Thread.Sleep(200);
retry_times++;
return selectSQL_SAFE(SQL, m, retry_times);
}
}
//strtotime 轉換成 Unix time
public string strtotime(string value)
{
//create Timespan by subtracting the value provided from
//the Unix Epoch
TimeSpan span = (Convert.ToDateTime(value) - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime());
//return the total seconds (which is a UNIX timestamp)
if (is_string_like(value, "."))
{
//有小數點
double sec = span.Ticks / (TimeSpan.TicksPerMillisecond / 1000.0) / 1000000.0;
return sec.ToString();
}
else
{
return span.TotalSeconds.ToString();
}
}
public bool is_string_like(string data, string find_string)
{
return (data.IndexOf(find_string) == -1) ? false : true;
}
public bool is_istring_like(string data, string find_string)
{
return (data.ToUpper().IndexOf(find_string.ToUpper()) == -1) ? false : true;
}
public string strtotime(DateTime value)
{
//create Timespan by subtracting the value provided from
//the Unix Epoch
TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime());
//return the total seconds (which is a UNIX timestamp)
return span.TotalSeconds.ToString();
}
public string date()
{
return date("Y-m-d H:i:s", strtotime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff")));
}
public string date(string format)
{
return date(format, strtotime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff")));
}
//UnixTimeToDateTime
public DateTime UnixTimeToDateTime(string text)
{
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
// Add the number of seconds in UNIX timestamp to be converted.
dateTime = dateTime.AddSeconds(Convert.ToDouble(text));
return dateTime;
}
public string date(string format, string unixtimestamp)
{
DateTime tmp = UnixTimeToDateTime(unixtimestamp);
tmp = tmp.AddHours(+8);
switch (format)
{
case "Y-m-d H:i:s":
return tmp.ToString("yyyy-MM-dd HH:mm:ss");
case "Y/m/d":
return tmp.ToString("yyyy/MM/dd");
case "Y/m/d H:i:s":
return tmp.ToString("yyyy/MM/dd HH:mm:ss");
case "Y/m/d H:i:s.fff":
return tmp.ToString("yyyy/MM/dd HH:mm:ss.fff");
case "Y-m-d_H_i_s":
return tmp.ToString("yyyy-MM-dd_HH_mm_ss");
case "Y-m-d":
return tmp.ToString("yyyy-MM-dd");
case "H:i:s":
return tmp.ToString("HH:mm:ss");
case "Y-m-d H:i":
return tmp.ToString("yyyy-MM-dd HH:mm");
case "Y_m_d_H_i_s":
return tmp.ToString("yyyy_MM_dd_HH_mm_ss");
case "Y_m_d_H_i_s_fff":
return tmp.ToString("yyyy_MM_dd_HH_mm_ss_fff");
case "w":
//回傳week, sun =0 , sat = 6, mon=1.....
return Convert.ToInt16(tmp.DayOfWeek).ToString();
case "Y":
return tmp.ToString("yyyy");
case "m":
return tmp.ToString("MM");
case "d":
return tmp.ToString("dd");
case "H":
return tmp.ToString("HH");
case "i":
return tmp.ToString("mm");
case "s":
return tmp.ToString("ss");
case "Y-m-d H:i:s.fff":
return tmp.ToString("yyyy-MM-dd HH:mm:ss.fff");
case "Y-m-d H:i:s.ffffff":
return tmp.ToString("yyyy-MM-dd HH:mm:ss.ffffff");
case "H:i:s.fff":
return tmp.ToString("HH:mm:ss.fff");
case "H:i:s.ffffff":
return tmp.ToString("HH:mm:ss.ffffff");
}
return "";
}
}
}