Basf_FCL/FCL/BLL/Funs.cs

550 lines
15 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace BLL
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Data.Linq;
using System.Reflection;
using System.IO;
/// <summary>
/// 通用方法类。
/// </summary>
public static class Funs
{
/// <summary>
/// 维护一个DB集合
/// </summary>
private static Dictionary<int, Model.FCLDB> dataBaseLinkList = new System.Collections.Generic.Dictionary<int, Model.FCLDB>();
/// <summary>
/// 维护一个DB集合
/// </summary>
public static System.Collections.Generic.Dictionary<int, Model.FCLDB> DBList
{
get
{
return dataBaseLinkList;
}
}
/// <summary>
/// 数据库连接字符串
/// </summary>
private static string connString;
/// <summary>
/// 数据库连结字符串。
/// </summary>
public static string ConnString
{
get
{
if (connString == null)
{
throw new NotSupportedException("请设置连接字符串!");
}
return connString;
}
set
{
if (connString != null)
{
throw new NotSupportedException("连接已设置!");
}
connString = value;
}
}
// 单点登陆ClientId参数
public static string ClientId
{
get;
set;
}
// 单点登陆ClientSecret参数
public static string ClientSecret
{
get;
set;
}
// 单点登陆Redirect_url参数
public static string Redirect_url
{
get;
set;
}
/// <summary>
/// 单位设置
/// </summary>
public static string UnitSet
{
get;
set;
}
/// <summary>
/// 路径
/// </summary>
public static string RootPath
{
get;
set;
}
/// <summary>
/// 系统名
/// </summary>
public static string SystemName
{
get;
set;
}
/// <summary>
/// 数据库上下文。
/// </summary>
public static Model.FCLDB DB
{
get
{
if (!DBList.ContainsKey(System.Threading.Thread.CurrentThread.ManagedThreadId))
{
DBList.Add(System.Threading.Thread.CurrentThread.ManagedThreadId, new Model.FCLDB(connString));
}
return DBList[System.Threading.Thread.CurrentThread.ManagedThreadId];
}
}
public static void PleaseSelect(System.Web.UI.WebControls.DropDownList DDL, string itemText)
{
DDL.Items.Insert(0, new System.Web.UI.WebControls.ListItem(itemText, BLL.Const._Null));
return;
}
public static bool DeleteDir(string file)
{
try
{
//去除文件夹和子文件的只读属性
//去除文件夹的只读属性
System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file);
fileInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;
//去除文件的只读属性
System.IO.File.SetAttributes(file, System.IO.FileAttributes.Normal);
//判断文件夹是否还存在
if (Directory.Exists(file))
{
foreach (string f in Directory.GetFileSystemEntries(file))
{
if (File.Exists(f))
{
//如果有子文件删除文件
File.Delete(f);
Console.WriteLine(f);
}
else
{
//循环递归删除子文件夹
DeleteDir(f);
}
}
//删除空文件夹
Directory.Delete(file);
}
return true;
}
catch (Exception ex) // 异常处理
{
return false;
}
}
/// <summary>
/// 为目标下拉框加上 "请选择" 项
/// </summary>
/// <param name="DLL">目标下拉框</param>
public static void FineUIPleaseSelect(FineUIPro.DropDownList DDL)
{
DDL.Items.Insert(0, new FineUIPro.ListItem("- Please select -", BLL.Const._Null));
return;
}
public static void FineUIPleaseSelect(FineUIPro.DropDownList DDL, string itemText)
{
DDL.Items.Insert(0, new FineUIPro.ListItem(itemText, BLL.Const._Null));
return;
}
/// <summary>
/// 为目标下拉框加上 "重新编制" 项
/// </summary>
/// <param name="DLL">目标下拉框</param>
public static void ReCompileSelect(System.Web.UI.WebControls.DropDownList DDL)
{
DDL.Items.Insert(0, new System.Web.UI.WebControls.ListItem("重新编制", "0"));
return;
}
/// <summary>
/// 为目标下拉框加上 "重新编制" 项
/// </summary>
/// <param name="DLL">目标下拉框</param>
public static void FineUIReCompileSelect(FineUIPro.DropDownList DDL)
{
DDL.Items.Insert(0, new FineUIPro.ListItem("重新编制", "0"));
return;
}
/// <summary>
/// 字符串是否为浮点数
/// </summary>
/// <param name="decimalStr">要检查的字符串</param>
/// <returns>返回是或否</returns>
public static bool IsDecimal(string decimalStr)
{
if (String.IsNullOrEmpty(decimalStr))
{
return false;
}
try
{
Convert.ToDecimal(decimalStr, NumberFormatInfo.InvariantInfo);
return true;
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return false;
}
}
/// <summary>
/// 判断一个字符串是否是整数
/// </summary>
/// <param name="integerStr">要检查的字符串</param>
/// <returns>返回是或否</returns>
public static bool IsInteger(string integerStr)
{
if (String.IsNullOrEmpty(integerStr))
{
return false;
}
try
{
Convert.ToInt32(integerStr, NumberFormatInfo.InvariantInfo);
return true;
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return false;
}
}
/// <summary>
/// 获取新的数字
/// </summary>
/// <param name="number">要转换的数字</param>
/// <returns>新的数字</returns>
public static string InterceptDecimal(object number)
{
if (number == null)
{
return null;
}
decimal newNumber = 0;
string newNumberStr = "";
int an = -1;
string numberStr = number.ToString();
int n = numberStr.IndexOf(".");
if (n == -1)
{
return numberStr;
}
for (int i = n + 1; i < numberStr.Length; i++)
{
string str = numberStr.Substring(i, 1);
if (str == "0")
{
if (GetStr(numberStr, i))
{
an = i;
break;
}
}
}
if (an == -1)
{
newNumber = Convert.ToDecimal(numberStr);
}
else if (an == n + 1)
{
newNumberStr = numberStr.Substring(0, an - 1);
newNumber = Convert.ToDecimal(newNumberStr);
}
else
{
newNumberStr = numberStr.Substring(0, an);
newNumber = Convert.ToDecimal(newNumberStr);
}
return newNumber.ToString();
}
/// <summary>
/// 判断字符串从第n位开始以后是否都为0
/// </summary>
/// <param name="number">要判断的字符串</param>
/// <param name="n">开始的位数</param>
/// <returns>false不都为0true都为0</returns>
public static bool GetStr(string number, int n)
{
for (int i = n; i < number.Length; i++)
{
if (number.Substring(i, 1) != "0")
{
return false;
}
}
return true;
}
/// <summary>
/// 获取三位流水号
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public static string GetThreeNumber(string num)
{
int number = 0;
string reValue = string.Empty;
try
{
number = Int32.Parse(num) + 1;
if (number.ToString().Length == 1)
{
reValue = "00" + number.ToString();
}
else if (number.ToString().Length == 2)
{
reValue = "0" + number.ToString();
}
else
{
reValue = number.ToString();
}
return reValue;
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return "";
}
}
/// <summary>
/// 截取字符串长度
/// </summary>
/// <param name="str">要截取的字符串</param>
/// <param name="n">长度</param>
/// <returns>截取后字符串</returns>
public static string GetSubStr(object str, object n)
{
if (str != null)
{
if (str.ToString().Length > Convert.ToInt32(n))
{
return str.ToString().Substring(0, Convert.ToInt32(n)) + "....";
}
else
{
return str.ToString();
}
}
return "";
}
/// <summary>
/// 输入文本转换时间类型
/// </summary>
/// <returns></returns>
public static DateTime? GetNewDateTime(string time)
{
if (!String.IsNullOrEmpty(time))
{
try
{
return DateTime.Parse(time);
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return null;
}
}
else
{
return null;
}
}
/// <summary>
/// 输入文本转换数字
/// </summary>
/// <returns></returns>
public static decimal? GetNewDecimal(string value)
{
if (!String.IsNullOrEmpty(value))
{
try
{
return decimal.Parse(value);
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return null;
}
}
else
{
return null;
}
}
/// <summary>
/// 输入文本转换数字
/// </summary>
/// <returns></returns>
public static decimal GetNewDecimalOrZero(string value)
{
decimal returnValue = 0;
if (!String.IsNullOrEmpty(value))
{
try
{
returnValue = decimal.Parse(value);
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return returnValue;
}
}
return returnValue;
}
/// <summary>
/// 输入文本转换数字类型
/// </summary>
/// <returns></returns>
public static int? GetNewInt(string value)
{
if (!String.IsNullOrEmpty(value))
{
try
{
return Int32.Parse(value);
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return null;
}
}
else
{
return null;
}
}
/// <summary>
/// 输入文本转换数字类型
/// </summary>
/// <returns></returns>
public static int GetNewIntOrZero(string value)
{
int returnValue = 0;
if (!String.IsNullOrEmpty(value))
{
try
{
returnValue = Int32.Parse(value);
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
return returnValue;
}
}
return returnValue;
}
/// <summary>
/// 指定上传文件的名称
/// </summary>
/// <returns></returns>
public static string GetNewFileName()
{
Random rm = new Random(System.Environment.TickCount);
return System.DateTime.Now.ToString("yyyyMMddhhmmss") + rm.Next(1000, 9999).ToString();
}
/// <summary>
/// 根据标识返回字符串list
/// </summary>
/// <param name="str"></param>
/// <param name="n"></param>
/// <returns></returns>
public static List<string> GetStrListByStr(string str, char n)
{
List<string> strList = new List<string>();
if (!string.IsNullOrEmpty(str))
{
strList.AddRange(str.Split(n));
}
return strList;
}
/// <summary>
/// 本时区日期时间转时间戳
/// </summary>
/// <param name="datetime"></param>
/// <returns>long=Int64</returns>
public static long DateTimeToTimestamp(DateTime datetime)
{
DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime timeUTC = DateTime.SpecifyKind(datetime, DateTimeKind.Utc);//本地时间转成UTC时间
TimeSpan ts = (timeUTC - dd);
return (Int64)ts.TotalMilliseconds;//精确到毫秒
}
}
}