using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
namespace LYFZ.WXLibrary
{
///
/// 常用处理类
///
public class CommonHandleClass
{
public CommonHandleClass()
{
}
///
/// 微信接口日志目录路径
///
public static string WeiXinlogsPath
{
get { return LYFZ.WinAPI.CustomPublicMethod.BasePath + "\\Logs\\WeiXinlogs\\"; }
}
private static bool isOpenLogs = false;
///
/// 是否开启日志功能
///
public static bool IsOpenLogs
{
get { return CommonHandleClass.isOpenLogs; }
set { CommonHandleClass.isOpenLogs = value; }
}
///
/// 写日志(用于跟踪)
///
public static void WriteLog(string strMsg, string ddomaine="-1", List _LogsDongleDomainList = null)
{
try
{
if ((_LogsDongleDomainList != null && IsOpenLogs && _LogsDongleDomainList.Contains(ddomaine)) || ddomaine == "-1" || (ddomaine == "-2" && IsOpenLogs))
{
string filename = LYFZ.WinAPI.CustomPublicMethod.BasePath + "\\Logs\\WeiXinlogs.txt";
if (!Directory.Exists(System.IO.Path.GetDirectoryName(filename)))
Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
StreamWriter sr = null;
try
{
if (!File.Exists(filename))
{
sr = File.CreateText(filename);
}
else
{
sr = File.AppendText(filename);
}
sr.WriteLine("【"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"】"+strMsg);
}
catch
{
}
finally
{
if (sr != null)
sr.Close();
}
}
}
catch { }
}
public static string GetWeiXinlogs()
{ string filename = LYFZ.WinAPI.CustomPublicMethod.BasePath + "\\Logs\\WeiXinlogs.txt";
if (System.IO.File.Exists(filename))
{
return System.IO.File.ReadAllText(filename).Replace("\r\n", "
").Replace("\n", "
");
}
else {
return "暂无日志";
}
}
public static bool DeleteWeiXinlogs()
{
try
{
string filename = LYFZ.WinAPI.CustomPublicMethod.BasePath + "\\Logs\\WeiXinlogs.txt";
if (System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
return true;
}
else
{
return false;
}
}
catch { return false; }
}
//URL参数添加/修改
public static string Fun_AddQueryToURL(string url, string key, string value)
{
int fragPos = url.LastIndexOf("#");
string fragment = string.Empty;
if (fragPos > -1)
{
fragment = url.Substring(fragPos);
url = url.Substring(0, fragPos);
}
int querystart = url.IndexOf("?");
if (querystart < 0)
{
url += "?" + key + "=" + value;
}
else
{
Regex reg = new Regex(@"(?<=[&\?])" + key + @"=[^\s]*", RegexOptions.Compiled);
if (reg.IsMatch(url))
url = reg.Replace(url, key + "=" + value);
else
url += "&" + key + "=" + value;
}
return url + fragment;
}
//URL参数删除
public static string Fun_RemoveQueryFromURL(string url, string key)
{
Regex reg = new Regex(@"[&\?]" + key + @"=[^\s]*&?", RegexOptions.Compiled);
return reg.Replace(url, new MatchEvaluator(PutAwayGarbageFromURL));
}
private static string PutAwayGarbageFromURL(Match match)
{
string value = match.Value;
if (value.EndsWith("&"))
{
return value.Substring(0, 1);
}
else
{
return string.Empty;
}
}
public static string GetNetUrl(string ServerHostOrIP, int PortNumber)
{
if (ServerHostOrIP.Contains(":"))
{
return "http://" + ServerHostOrIP;
}
else
{
return "http://" + ServerHostOrIP + ":" + PortNumber.ToString();
}
}
static List _MicroLetterEventList = new List();
///
/// 微信事件列表
///
public static List MicroLetterEventList
{
get { return _MicroLetterEventList; }
}
///
/// 关键字集合
///
static List _KeywordObjectsList = new List();
///
/// 关键字集合
///
public static List KeywordObjectsList
{
get { return _KeywordObjectsList; }
set { _KeywordObjectsList = value; }
}
public static string GetFunctionCode(string keyword)
{
KeywordObjects key = KeywordObjectsList.Find(k=>k.Keyword.ToLower()==keyword.ToLower());
if (key != null && key.FunctionCode.Trim().Length > 0)
{
return key.FunctionCode;
}
else {
return "null";
}
}
}
}