/// <summary> /// 将Unicode字串\u.\u.格式字串转换为原始字符串 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string UnicodeToString(string str) { string outStr = ""; str = CRegex.Replace(str, "[\r\n]", "", 0); if (!string.IsNullOrEmpty(str)) { string[] strlist = str.Replace("\\u", "㊣").Split('㊣'); try { outStr += strlist[0]; for (int i = 1; i < strlist.Length; i++) { string strTemp = strlist[i]; if (!string.IsNullOrEmpty(strTemp) && strTemp.Length >= 4) { strTemp = strlist[i].Substring(0, 4); //将unicode字符转为10进制整数,然后转为char中文字符 outStr += (char)int.Parse(strTemp, System.Globalization.NumberStyles.HexNumber); outStr += strlist[i].Substring(4); } } } catch (FormatException ex) { outStr += "Erorr";//ex.Message; } } return(outStr); }
/// <summary> /// 添加图书评论 /// </summary> /// <returns></returns> public string AddBookComment() { int BookId = int.Parse(context.Request.Form["iBookId"].ToString()); User u = UserDal.CurrentUser(); int UserId = u.UserId; string UserName = u.UserName; string BookRemarks = context.Request.Form["sBookRemarks"].ToString(); rm.Success = true; try { BookRemark bookRemark = new BookRemark(); bookRemark.BookId = BookId; bookRemark.UserId = UserId; bookRemark.BookRemarks = BookRemarks; bookRemark.UserName = UserName; bookRemark.ClientIP = WebHelp.GetIP(); bookRemark.CreatedTime = DateTime.Now; if (CRegex.FilterHTML(bookRemark.BookRemarks) == "") { rm.Info = "内容不能为空"; return(jss.Serialize(rm)); } int iBookRemarkId = BookDetailsDAL.m_BookRemarkDal.Add(bookRemark); } catch (Exception) { rm.Success = false; rm.Info = "未知错误"; } return(jss.Serialize(rm)); }
/// <summary> /// 添加图书评论的回复2 /// </summary> /// <returns></returns> public string AddBookCommentReplyAgain() { int BookRemarkReplyId = int.Parse(context.Request.Form["iBookRemarkReplyId"].ToString()); //对哪条回复的回复 BookRemarkReply ReplyTo = BookDetailsDAL.m_BookRemarkReplyDal.GetModel(BookRemarkReplyId); int UserId = ReplyTo.UserId; string UserName = "******" + ReplyTo.UserName; string sBookRemarksReplyAgain = context.Request.Form["sBookRemarksReplyAgain"].ToString(); rm.Success = true; try { BookRemarkReply bookRemarkReply = new BookRemarkReply(); bookRemarkReply.BookRemarkId = ReplyTo.BookRemarkId; bookRemarkReply.BookId = ReplyTo.BookId; bookRemarkReply.UserId = UserId; bookRemarkReply.BookRemarksReply = sBookRemarksReplyAgain; bookRemarkReply.UserName = UserName; bookRemarkReply.ClientIP = WebHelp.GetIP(); bookRemarkReply.CreatedTime = DateTime.Now; if (CRegex.FilterHTML(bookRemarkReply.BookRemarksReply) == "") { rm.Info = "内容不能为空"; return(jss.Serialize(rm)); } int iBookRemarkReplyId = BookDetailsDAL.m_BookRemarkReplyDal.Add(bookRemarkReply); } catch (Exception) { rm.Success = false; rm.Info = "未知错误"; } return(jss.Serialize(rm)); }
private bool ValidationContent() { string ip = tb_IpAddress.Text.Trim(); string loginname = tb_LoginName.Text.Trim(); string password = tb_Password.Text.Trim(); if (!CRegex.IsIpAddress(ip)) { MessageBox.Show(ip + " IP地址有误(例:192.168.0.100),请重新输入。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); tb_IpAddress.Focus(); return(false); } if (loginname.Length == 0) { MessageBox.Show("登录名不能为空,请重新输入。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); tb_LoginName.Focus(); return(false); } if (password.Length == 0) { MessageBox.Show("密码不能为空,请重新输入。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); tb_Password.Focus(); return(false); } return(true); }
/// <summary> /// 获取指定目录下的图片文件名列表 /// </summary> /// <param name="realPath">实际路径</param> /// <returns></returns> private List <CListItem> GetImageToList(string realPath, int size) { List <CListItem> list = new List <CListItem>(); string[] fileArray = GetImages(realPath, "*.gif", "*.jpg", "*.png"); if (fileArray != null) { foreach (string file in fileArray) { string fileName = Path.GetFileName(file); string displayText = Path.GetFileNameWithoutExtension(file); //文件名需要去除()和[]等符号 displayText = CRegex.Replace(displayText, @"[)\];,\t\r ]|[\n]", "", 0); displayText = CRegex.Replace(displayText, @"[(\[]", "-", 0); //displayText = displayText.Replace("(", "-").Replace(")", "-").Replace("[", "-").Replace("]", "-"); //避免冲突,样式名称加上尺寸 //16*16的名称:icon-005 32*32的名称:icon-32-005 if (size == 16) { displayText = string.Format("icon-{0}", displayText); } else { displayText = string.Format("icon-{0}-{1}", size, displayText); } list.Add(new CListItem(fileName, displayText)); } } return(list); }
public static PageType GetPageType(string sUrl, ref string sHtml) { PageType pt = PageType.HTML; //看有没有RSS FEED string regRss = @"<link\s+[^>]*((type=""application/rss\+xml"")|(type=application/rss\+xml))[^>]*>"; Regex r = new Regex(regRss, RegexOptions.IgnoreCase); Match m = r.Match(sHtml); if (m.Captures.Count != 0) {//有,则转向从RSS FEED中抓取 string regHref = @"href=\s*(?:'(?<href>[^']+)'|""(?<href>[^""]+)""|(?<href>[^>\s]+))"; r = new Regex(regHref, RegexOptions.IgnoreCase); m = r.Match(m.Captures[0].Value); if (m.Captures.Count > 0) { //有可能是相对路径,加上绝对路径 string rssFile = CRegex.GetUrl(sUrl, m.Groups["href"].Value); sHtml = GetHtmlByUrl(rssFile); pt = PageType.RSS; } } else {//看这个地址本身是不是一个Rss feed r = new Regex(@"<rss\s+[^>]*>", RegexOptions.IgnoreCase); m = r.Match(sHtml); if (m.Captures.Count > 0) { pt = PageType.RSS; } } return(pt); }
/// <summary> /// 从文本文件读取字典 /// </summary> /// <param name="fileName"></param> static public T_DictFile LoadFromTextDict(String fileName) { T_DictFile dictFile = new T_DictFile(); String dictStr = CFile.ReadFileToString(fileName, "utf-8"); String[] words = CRegex.Split(dictStr, "\r\n"); foreach (String word in words) { String[] wp = CRegex.Split(word, @"\|"); if (wp == null) { continue; } if (wp.Length != 2) { continue; } int pos = 0; try { pos = int.Parse(wp[1]); } catch { continue; } T_DictStruct dict = new T_DictStruct(); dict.Word = wp[0]; dict.Pos = pos; if (dict.Word.Contains("一") || dict.Word.Contains("二") || dict.Word.Contains("三") || dict.Word.Contains("四") || dict.Word.Contains("五") || dict.Word.Contains("六") || dict.Word.Contains("七") || dict.Word.Contains("八") || dict.Word.Contains("九") || dict.Word.Contains("十")) { dict.Pos |= (int)T_POS.POS_A_M; } if (dict.Word == "字典") { dict.Pos = (int)T_POS.POS_D_N; } dictFile.Dicts.Add(dict); } return(dictFile); }
/// <summary> /// 获取AccessToken /// </summary> /// <param name="corpid"></param> /// <param name="corpsecret"></param> /// <returns></returns> private string GetAccessToken(string corpid, string corpsecret) { string Gurl = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpid, corpsecret); string html = HttpHelper.HttpGet(Gurl, ""); string regex = "\"access_token\":\"(?<token>.*?)\""; string token = CRegex.GetText(html, regex, "token"); return(token); }
/// <summary> /// 获取jsapi_ticket /// </summary> /// <param name="corpid"></param> /// <param name="corpsecret"></param> /// <returns></returns> public string GetJsapi_ticket(string accesstoken) { string Gurl = string.Format("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token={0}", accesstoken); string html = HttpHelper.HttpGet(Gurl, ""); string regex = "\"ticket\":\"(?<token>.*?)\""; string token = CRegex.GetText(html, regex, "token"); return(token); }
/// <summary> /// 初始化加载图标资源 /// </summary> /// <returns></returns> private DXImageGalleryLoader LoadData() { this.ImageCollection = new Dictionary <string, GalleryItem>(); this.Categories = new List <string>(); this.Collection = new List <string>(); this.Size = new List <string>(); using (System.Resources.ResourceReader reader = GetResourceReader(DevExpress.Utils.DxImageAssemblyUtil.ImageAssembly)) { System.Collections.IDictionaryEnumerator dict = reader.GetEnumerator(); while (dict.MoveNext()) { string key = (string)dict.Key as string; if (!DevExpress.Utils.DxImageAssemblyUtil.ImageProvider.IsBrowsable(key)) { continue; } if (key.EndsWith(".png", StringComparison.Ordinal)) { string reg = @"(?<collection>\S*?)/(?<category>\S*?)/(?<name>\S*)"; var collectionItem = CRegex.GetText(key, reg, "collection"); var categoryItem = CRegex.GetText(key, reg, "category"); string sizeReg = @"_(?<size>\S*)\."; var sizeItem = CRegex.GetText(key, sizeReg, "size"); if (!this.Collection.Contains(collectionItem)) { this.Collection.Add(collectionItem); } if (!this.Categories.Contains(categoryItem)) { this.Categories.Add(categoryItem); } if (!this.Size.Contains(sizeItem)) { this.Size.Add(sizeItem); } Image image = GetImageFromStream((System.IO.Stream)dict.Value); if (image != null) { var item = new DevExpress.XtraBars.Ribbon.GalleryItem(image, key, key); if (!ImageCollection.ContainsKey(key)) { ImageCollection.Add(key, item); } } } } } return(this); }
public string GetShopList() { StringBuilder sb = new StringBuilder(); List <travel_shopper> list = travel_shopperDAL.m_travel_shopperDal.GetList("1=1", 10, page, true, "*"); foreach (var r in list) { string txt = CRegex.FilterHTML(r.shopper_content).Length > 120 ? CRegex.FilterHTML(r.shopper_content).Substring(0, 120) + "..." : CRegex.FilterHTML(r.shopper_content); sb.Append(string.Format(@"<a href=""TripList.aspx?id={0}""><div class=""shopname"" style=""font-size: 20px;font-weight:800;"">{1}</div> <div class=""shopdp""><img src=""{2}""></div> <div class=""shopcontent"" style=""text-indent:28px;"">{3}</div></a>", r.shopper_shopId, r.shopper_shopname, r.shopper_dp, r.shopper_content)); } return(sb.ToString()); }
private static string[] DealWithFrame(string strReg, string url, string content) { ArrayList alFrame = new ArrayList(); Regex r = new Regex(strReg, RegexOptions.IgnoreCase); Match m = r.Match(content); while (m.Success) { alFrame.Add(CRegex.GetUrl(url, m.Groups["src"].Value)); m = m.NextMatch(); } return((string[])alFrame.ToArray(System.Type.GetType("System.String"))); }
public string GetGuideList() { StringBuilder sb = new StringBuilder(); List <travel_guide> list = travel_guideDAL.m_travel_guideDal.GetList("1=1", 10, page, true, "*"); foreach (var r in list) { string txt = CRegex.FilterHTML(r.guide_introduce).Length > 120 ? CRegex.FilterHTML(r.guide_introduce).Substring(0, 120) + "..." : CRegex.FilterHTML(r.guide_introduce); sb.Append(string.Format(@"<div class=""guidedp""><img src=""{0}""></div> <div class=""guidecardId"">导游证编号:{1}</div> <div class=""guidename"">姓名:{2}</div> <div class=""guideintroduce"">导游简介:{3}</div>", r.guide_dp, r.guide_guidecardId, r.guide_name, r.guide_introduce)); } return(sb.ToString()); }
public string GetBuycarList() { string listTitle = Session["listTitle"].ToString(); string listPrice = Session["listPrice"].ToString(); string listPicture = Session["listPicture"].ToString(); string listTxt = Session["listTxt"].ToString(); StringBuilder sb = new StringBuilder(); string txt = CRegex.FilterHTML(listTxt).Length > 120 ? CRegex.FilterHTML(listTxt).Substring(0, 120) + "..." : CRegex.FilterHTML(listTxt); string tit = CRegex.FilterHTML(listTitle).Length > 25 ? CRegex.FilterHTML(listTitle).Substring(0, 25) + "..." : CRegex.FilterHTML(listTitle); sb.Append(string.Format(@"<div class=""tripcard""><div class=""trippicture""><img src=""{0}""></div> <div class=""triptitle""><span style=""font-size: 20px;font-weight:800;"">{1}</span></div> <div class=""tripcontent"" style=""text-indent:28px;"">{2}</div> <div class=""tripprice"">¥{3}<span style=""font-size: 16px;margin-left: 3px;"">起</span></div><a class=""tripcount"" href=""UserPay.aspx"">立即支付</a></div>", listPicture, tit, txt, listPrice)); return(sb.ToString()); }
/// <summary> /// 根据条件获取集合 /// </summary> /// <returns></returns> public Dictionary <string, GalleryItemCollection> Search(List <string> collection, List <string> categories, List <string> size, string fileName = "") { Dictionary <string, GalleryItemCollection> dict = new Dictionary <string, GalleryItemCollection>(); GalleryItemCollection list = new GalleryItemCollection(); foreach (var key in ImageCollection.Keys) { //使用正则表达式获取图标文件名中的集合、类别、大小等信息 string reg = @"(?<collection>\S*?)/(?<category>\S*?)/(?<name>\S*)"; var collectionItem = CRegex.GetText(key, reg, "collection"); var categoryItem = CRegex.GetText(key, reg, "category"); string sizeReg = @"_(?<size>\S*)\."; var sizeItem = CRegex.GetText(key, sizeReg, "size"); //如果是查询处理,把记录放到查询结果里面 if (!string.IsNullOrEmpty(fileName)) { if (key.Contains(fileName)) { list.Add(ImageCollection[key]); } dict["查询结果"] = list; } else { //如果是集合和列表中包含的,把它们按类别添加到字典里面 if (collection.Contains(collectionItem) && categories.Contains(categoryItem) && size.Contains(sizeItem)) { if (!dict.ContainsKey(categoryItem)) { GalleryItemCollection cateList = new GalleryItemCollection(); cateList.Add(ImageCollection[key]); dict[categoryItem] = cateList; } else { GalleryItemCollection cateList = dict[categoryItem]; cateList.Add(ImageCollection[key]); } } } } return(dict); }
public string GetTripList() { StringBuilder sb = new StringBuilder(); List <travel_trip> list = travel_tripDAL.m_travel_tripDal.GetList("1=1", 10, page, true, "*"); foreach (var r in list) { string txt = CRegex.FilterHTML(r.trip_content).Length > 120 ? CRegex.FilterHTML(r.trip_content).Substring(0, 120) + "..." : CRegex.FilterHTML(r.trip_content); string tit = CRegex.FilterHTML(r.trip_name).Length > 25 ? CRegex.FilterHTML(r.trip_name).Substring(0, 25) + "..." : CRegex.FilterHTML(r.trip_name); sb.Append(string.Format(@"<a href=""TripLiskItem.aspx?id={0}""><div class=""trippicture""><img src=""{1}""></div> <div class=""triptitle""><span style=""font-size: 20px;font-weight:800;"">{2}</span></div> <div class=""tripcontent"" style=""text-indent:28px;"">{3}</div> <div class=""tripprice"">¥{4}<span style=""font-size: 16px;margin-left: 3px;"">起</span></div> <div class=""tripcount"">参与人数:{5}</div></a>", r.trip_tripId, r.trip_picutur, tit, txt, r.trip_price, r.trip_count)); } return(sb.ToString()); }
static public T_DictFile LoadFromBinFileEx(String fileName) { T_DictFile dictFile = new T_DictFile(); dictFile.Dicts = new List <T_DictStruct>(); FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); byte[] version = new byte[32]; fs.Read(version, 0, version.Length); String ver = Encoding.UTF8.GetString(version, 0, version.Length); String verNumStr = CRegex.GetMatch(ver, "KTDictSeg Dict V(.+)", true); if (verNumStr == null || verNumStr == "") { //1.3以前版本 fs.Close(); return(LoadFromBinFile(fileName)); } while (fs.Position < fs.Length) { byte[] buf = new byte[sizeof(int)]; fs.Read(buf, 0, buf.Length); int length = BitConverter.ToInt32(buf, 0); buf = new byte[length]; T_DictStruct dict = new T_DictStruct(); fs.Read(buf, 0, buf.Length); dict.Word = Encoding.UTF8.GetString(buf, 0, length - sizeof(int) - sizeof(double)); dict.Pos = BitConverter.ToInt32(buf, length - sizeof(int) - sizeof(double)); dict.Frequency = BitConverter.ToDouble(buf, length - sizeof(double)); dictFile.Dicts.Add(dict); } fs.Close(); return(dictFile); }
private void BatchInsert(String fileName, String encoder) { String content = CFile.ReadFileToString(fileName, encoder); String[] words = CRegex.Split(content, @"\r\n"); bool allUse = false; T_DictStruct lstWord = null; foreach (String word in words) { if (word == null) { continue; } if (word.Trim() == "") { continue; } FormBatchInsert frmBatchInsert = new FormBatchInsert(); if (!allUse || lstWord == null) { frmBatchInsert.Word.Word = word.Trim(); if (frmBatchInsert.ShowDialog() == DialogResult.OK) { lstWord = frmBatchInsert.Word; allUse = frmBatchInsert.AllUse; m_DictManage.InsertWord(lstWord.Word, lstWord.Frequency, lstWord.Pos); } } else { lstWord.Word = word.Trim(); m_DictManage.InsertWord(lstWord.Word, lstWord.Frequency, lstWord.Pos); } } }
/// <summary> /// 获取邮件地址和显示信息到一个字典列表中 /// </summary> /// <param name="emailValues">含邮件地址和说明的字符串(多个用;分开)</param> /// <param name="dictList">规范的邮件地址列表</param> private void GetEmailList(string emailValues, ref Dictionary <string, string> dictList) { if (!string.IsNullOrEmpty(emailValues)) { string emailReg = @"([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})"; foreach (string item in emailValues.Split(new char[] { ';', ',' })) { string email = CRegex.GetText(item, emailReg, 0); if (!string.IsNullOrEmpty(email)) { string display = item.Replace(email, "").Replace("(", "").Replace(")", "").Replace("<", "").Replace(">", ""); display = !string.IsNullOrEmpty(display) ? display : email; if (!dictList.ContainsKey(email)) { dictList.Add(email, display); } } } } }
/// <summary> /// 点击表信息得到的结果 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Item_LinkClicked(object sender, NavBarLinkEventArgs e) { var item = sender as NavBarItem; // 判断是否已经存在了如果存在了则改为选中 for (System.Int32 i = 0; i < tabbedView.Documents.Count; i++) { // 找到 选中 if (string.Equals(tabbedView.Documents[i].Tag, item.Hint)) { tabbedView.Controller.Activate(tabbedView.Documents[i]); dockPanel6.HideSliding(); return; } } tabbedView.BeginUpdate(); control = new UserControl(); control.Name = item.Name; control.Text = item.Hint; List <object> args = new List <object>(); #region 读取Table.xml 配置信息 XmlHelper xmltableshelper = new XmlHelper(@"XML\tables.xml"); XmlNodeList xmlNodeLst = xmltableshelper.Read("datatype/tabletype"); guidGroup.Clear(); tableGroup.Clear(); foreach (XmlNode xn1 in xmlNodeLst) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 获取字符串中的英文字母 [a-zA-Z]+ string GroupEnglishName = CRegex.GetText(xe.GetAttribute("name").ToString(), "[a-zA-Z]+", 0); guidGroup.Add(xe.GetAttribute("gid").ToString(), string.Format("{0}{1}_", Const.TablePre, GroupEnglishName)); } XmlNodeList xmlNodeLst2 = xmltableshelper.Read("datatype/dataitem"); foreach (XmlNode xn1 in xmlNodeLst2) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 // 得到ConstantInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; tableGroup.Add(xnl0.Item(0).InnerText, guidGroup[xnl0.Item(3).InnerText]); } #endregion #region 根据Name 去动态生成控件 switch (control.Name) { case "GenerTableSql": #region 加载.table数据信息 string[] filenames = Directory.GetFiles("./XML/", "*.table", SearchOption.TopDirectoryOnly); #endregion Panel p1 = new Panel(); p1.Dock = DockStyle.Top; p1.Height = 30; Panel p2 = new Panel(); p2.Dock = DockStyle.Right; p2.Width = 10; progressBar = new ProgressBarControl(); //设置一个最小值 progressBar.Properties.Minimum = 0; //设置一个最大值 progressBar.Properties.Maximum = filenames.Length; //设置步长,即每次增加的数 progressBar.Properties.Step = 1; //设置进度条的样式 progressBar.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBar.Dock = DockStyle.Fill; progressBar.Properties.ShowTitle = true; SimpleButton btn = new SimpleButton(); btn.Dock = DockStyle.Right; btn.Name = "btnde"; btn.Size = new System.Drawing.Size(90, 25); btn.Text = "执行"; btn.Click += (sender1, e1) => { progressBar.Position = 0; args.Clear(); args.Add(control.Name); args.Add(filenames); this.backgroundWorker1.RunWorkerAsync(args); }; p1.Controls.Add(progressBar); p1.Controls.Add(p2); p1.Controls.Add(btn); control.Controls.Add(p1); break; case "TableDataSql": #region 加载.basicdata数据信息 string[] filenames2 = Directory.GetFiles("./XML/", "*.basicdata", SearchOption.TopDirectoryOnly); #endregion Panel p3 = new Panel(); p3.Dock = DockStyle.Top; p3.Height = 30; Panel p4 = new Panel(); p4.Dock = DockStyle.Right; p4.Width = 10; progressBar = new ProgressBarControl(); //设置一个最小值 progressBar.Properties.Minimum = 0; //设置一个最大值 progressBar.Properties.Maximum = filenames2.Length; //设置步长,即每次增加的数 progressBar.Properties.Step = 1; //设置进度条的样式 progressBar.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBar.Dock = DockStyle.Fill; progressBar.Properties.ShowTitle = true; SimpleButton btn2 = new SimpleButton(); btn2.Dock = DockStyle.Right; btn2.Name = "btnde"; btn2.Size = new System.Drawing.Size(90, 25); btn2.Text = "执行"; btn2.Click += (sender1, e1) => { progressBar.Position = 0; args.Clear(); args.Add(control.Name); args.Add(filenames2); this.backgroundWorker1.RunWorkerAsync(args); }; p3.Controls.Add(progressBar); p3.Controls.Add(p4); p3.Controls.Add(btn2); control.Controls.Add(p3); break; case "DictionarySql": Panel p5 = new Panel(); p5.Dock = DockStyle.Top; p5.Height = 30; Panel p6 = new Panel(); p6.Dock = DockStyle.Right; p6.Width = 10; progressBar = new ProgressBarControl(); //设置一个最小值 progressBar.Properties.Minimum = 0; //设置一个最大值 progressBar.Properties.Maximum = 2; //设置步长,即每次增加的数 progressBar.Properties.Step = 1; //设置进度条的样式 progressBar.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBar.Dock = DockStyle.Fill; progressBar.Properties.ShowTitle = true; SimpleButton btn3 = new SimpleButton(); btn3.Dock = DockStyle.Right; btn3.Name = "btnde"; btn3.Size = new System.Drawing.Size(90, 25); btn3.Text = "执行"; btn3.Click += (sender1, e1) => { progressBar.Position = 0; args.Clear(); args.Add(control.Name); this.backgroundWorker1.RunWorkerAsync(args); }; p5.Controls.Add(progressBar); p5.Controls.Add(p6); p5.Controls.Add(btn3); control.Controls.Add(p5); break; case "MenuSql": Panel p7 = new Panel(); p7.Dock = DockStyle.Top; p7.Height = 30; Panel p8 = new Panel(); p8.Dock = DockStyle.Right; p8.Width = 10; progressBar = new ProgressBarControl(); //设置一个最小值 progressBar.Properties.Minimum = 0; //设置一个最大值 progressBar.Properties.Maximum = 1; //设置步长,即每次增加的数 progressBar.Properties.Step = 1; //设置进度条的样式 progressBar.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBar.Dock = DockStyle.Fill; progressBar.Properties.ShowTitle = true; SimpleButton btn4 = new SimpleButton(); btn4.Dock = DockStyle.Right; btn4.Name = "btnde"; btn4.Size = new System.Drawing.Size(90, 25); btn4.Text = "执行"; btn4.Click += (sender1, e1) => { progressBar.Position = 0; args.Clear(); args.Add(control.Name); this.backgroundWorker1.RunWorkerAsync(args); }; p7.Controls.Add(progressBar); p7.Controls.Add(p8); p7.Controls.Add(btn4); control.Controls.Add(p7); break; case "FunctionSql": break; } #endregion BaseDocument document = tabbedView.AddDocument(control); document.Footer = Directory.GetCurrentDirectory(); document.Tag = item.Hint; tabbedView.EndUpdate(); tabbedView.Controller.Activate(document); dockPanel6.HideSliding(); }
private void InputRecord() { List <CbIoRecord> mRecord = new List <CbIoRecord>(); try { foreach (string item in _FileNames) { if (!CRegex.IsEnterExitRecordFileName(Path.GetFileNameWithoutExtension(item))) { continue; } this.Invoke(new EventHandler(delegate { l_Title.Text = string.Format("正在导入“{0}”", Path.GetFileNameWithoutExtension(item)); pBar.PerformStep(); })); using (TextFieldParser tfp = new TextFieldParser(item, Encoding.GetEncoding("gb2312"))) { tfp.Delimiters = new string[] { "," };//确认分隔符 tfp.TextFieldType = FieldType.Delimited; int number = 0; int state = 0; int count = 0; while (!tfp.EndOfData) { string[] str = tfp.ReadFields();//读取行 if (str.Length >= 3) { count++; //888883,000000,20140927151922 //组合Sql语句 CbIoRecord record = new CbIoRecord(); record.DeviceNumber = number; record.IOTime = DateTime.ParseExact(str[2], "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); record.IOState = state;//0进 1出 if (str[0] == "FFFFFF" && str[1] == "FFFFFF") { string[] str2 = tfp.ReadFields(); if (str2[0] == "FFFFFF" && str2[1] == "FFFFFF") { } else if (str2[0] == "FFFFFF")//车牌识别卡 { record.MasterCardNumber = str2[1]; } else //IC卡 { string icnumber = str2[0] + str2[1]; icnumber = icnumber.Remove(0, 4); record.MasterCardNumber = icnumber; } record.SubCardNumber = str2[2]; } else { record.MasterCardNumber = str[0]; record.SubCardNumber = str[1]; } mRecord.Add(record); } else { if (str[0].Contains("!!")) { number = Utils.StrToInt(str[0].Substring(10, 2), 0); state = Utils.StrToInt(str[0].Substring(12, 2), 0); } } } } } this.Invoke(new EventHandler(delegate { l_Title.Text = "正在保存数据"; Dbhelper.Db.Insert <CbIoRecord>(mRecord.ToArray()); tInputRecord = null; this.DialogResult = DialogResult.OK; })); } catch (Exception ex) { CustomExceptionHandler.GetExceptionMessage(ex); MessageBox.Show("导入失败错误数据:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { tInputRecord = null; Close(); } }
//更新店铺时语音转mp3 public async Task <string> SendVoiceToAliOss(int voiceId, int artId, int commentId, string content = "", bool needUpdateContent = false, bool isupdate = false) { string artcont = content; if (voiceId < 1) { return(string.Empty); } C_Attachment model = GetModel(voiceId); if (model == null) { return(string.Empty); } model.itemId = artId; try { if (!string.IsNullOrEmpty(model.filepath)) { if (isupdate) { if (!model.filepath.Contains("temp"))//不是新上传的,停止操作! { log4net.LogHelper.WriteInfo(this.GetType(), "观察日志:修改文章停止旧语音移动。文章ID=" + artId + "语音路径" + model.filepath); return(string.Empty); } } var bucket = ConfigurationManager.AppSettings["BucketName"]; int whichDomain = 1; string TemplateId = string.Empty; string PipelineId = string.Empty; TemplateId = ConfigurationManager.AppSettings["VoiceTemplateId"] ?? "42d5aac40e6a50bf13045a40aeb83b6f"; PipelineId = ConfigurationManager.AppSettings["PipelineId"] ?? "4bc9dd15cb3d48e39e0824e19c41defb"; var finalVoiceKey = string.Empty; var finalVoiceFolder = AliOSSHelper.GetOssVoiceKey("mp3", false, "voice/folder", out finalVoiceKey, whichDomain); //上传的本地音频。并且不是mp3|| 微信语音 if (!string.IsNullOrEmpty(model.VoiceServerId)) { //转换mp3 bool submitResult = await AliMTSHelper.SubmitJobs(model.filepath, finalVoiceKey, bucket, TemplateId, PipelineId, "", whichDomain); if (submitResult) {//转换成功。更新路径 model.thumbnail = finalVoiceKey; //图文混排内容里的音频替换 if (needUpdateContent) { var voiceurl = model.filepath; artcont = CRegex.Replace(artcont, voiceurl, finalVoiceKey, 0); } }//音频转换失败 else { log4net.LogHelper.WriteInfo(this.GetType(), "语音给AliOSS转换格式失败!ID为" + model.id + "==" + model.filepath); } }//mp3移动 else { //本地音频mp3格式从temp 拷贝 Task <bool> moveResult = Task <bool> .Factory.StartNew( () => { return(AliOSSHelper.CopyObect(model.thumbnail, finalVoiceKey)); } ); ; if (await moveResult) {//移动成功。更新路径 model.thumbnail = finalVoiceKey; //图文混排内容里的音频替换 if (needUpdateContent) { var voiceurl = model.filepath; artcont = CRegex.Replace(artcont, voiceurl, finalVoiceKey, 0); } } // 移动失败 else { log4net.LogHelper.WriteInfo(this.GetType(), "本地音频AliOSS临时文件夹移动到正式文件夹失败!ID为" + model.id); } } } MySqlParameter[] param = new MySqlParameter[] { new MySqlParameter("@itemId", artId), new MySqlParameter("@filepath", model.filepath), new MySqlParameter("@thumbnail", model.thumbnail), new MySqlParameter("@id", model.id) }; string sql = "update C_Attachment set itemId=@itemId,filepath=@filepath,thumbnail=@thumbnail where id=@id"; SqlMySql.ExecuteNonQuery(Utility.dbEnum.MINIAPP.ToString(), System.Data.CommandType.Text, sql, param); RedisUtil.Remove(string.Format(CImageKey, model.itemId, model.itemType)); RemoveRedis(model.itemId, model.itemType); return(artcont); } catch (Exception ex) { log4net.LogHelper.WriteError(this.GetType(), new Exception("voiceid" + model.id + "移动语音失败:" + ex.Message)); return(string.Empty); } }
/// <summary> /// 读取xml数据 /// </summary> private void ReadXMLData() { #region 加载数据字典大项 XmlNodeList xmlNodeLst = xmldicthelper.Read("datatype/dataitem"); dictTypeInfoList = new List <DictInfo>(); foreach (XmlNode xn1 in xmlNodeLst) { DictInfo dictInfo = new DictInfo(); // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; dictInfo.Id = xnl0.Item(0).InnerText.ToInt32(); dictInfo.Pid = xnl0.Item(1).InnerText.ToInt32(); dictInfo.Name = xnl0.Item(2).InnerText; dictInfo.Remark = xnl0.Item(3).InnerText; dictTypeInfoList.Add(dictInfo); } #endregion #region 读取项目数据 XmlNodeList xmlprejectNodeLst = xmlprojectthelper.Read("datatype"); if (xmlprejectNodeLst.Count == 0) { return; } XmlNode xn1project = xmlprejectNodeLst[0]; projectInfo = new ProjectInfo(); // 将节点转换为元素,便于得到节点的属性值 XmlElement xeproject = (XmlElement)xn1project; // 得到Type和ISBN两个属性的属性值 projectInfo.Gid = xeproject.GetAttribute("gid").ToString(); // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0project = xeproject.ChildNodes; projectInfo.Name = xnl0project.Item(0).InnerText; projectInfo.Version = xnl0project.Item(1).InnerText; projectInfo.Contacts = xnl0project.Item(2).InnerText; projectInfo.Remark = xnl0project.Item(3).InnerText; projectInfo.DbType = xnl0project.Item(4).InnerText; projectInfo.DicttypeTable = xnl0project.Item(5).InnerText; projectInfo.DictdataTable = xnl0project.Item(6).InnerText; projectInfo.ErrTable = xnl0project.Item(7).InnerText; projectInfo.LastUpdateTime = Convert.ToDateTime(xnl0project.Item(8).InnerText); projectInfo.OutputPath = xnl0project.Item(9).InnerText; #endregion #region 读取Table.xml 配置信息 XmlHelper xmltableshelper = new XmlHelper(@"XML\tables.xml"); XmlNodeList xmlNodeLst2 = xmltableshelper.Read("datatype/tabletype"); guidGroup.Clear(); tableGroup.Clear(); foreach (XmlNode xn1 in xmlNodeLst2) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 获取字符串中的英文字母 [a-zA-Z]+ string GroupEnglishName = CRegex.GetText(xe.GetAttribute("name").ToString(), "[a-zA-Z]+", 0); guidGroup.Add(xe.GetAttribute("gid").ToString(), string.Format("{0}{1}_", Const.TablePre, GroupEnglishName)); } XmlNodeList xmlNodeLst3 = xmltableshelper.Read("datatype/dataitem"); foreach (XmlNode xn1 in xmlNodeLst3) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 // 得到ConstantInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; tableGroup.Add(xnl0.Item(0).InnerText, guidGroup[xnl0.Item(3).InnerText]); } #endregion }
private void InputInfo() { CbDeviceInfo mode; List <CbDeviceInfo> deviceinfos = new List <CbDeviceInfo>(); try { StringBuilder sb = new StringBuilder(); TextFieldParser tfp; foreach (string item in _FileNames) { if (!File.Exists(item)) { continue; } string filename = Path.GetFileNameWithoutExtension(item); if (!CRegex.IsDeviceInfoFileName(filename)) { continue; } l_Title.Text = "正在导入:" + filename; pBar.PerformStep(); sb.AppendFormat("文件:{0}", filename); using (tfp = new TextFieldParser(item)) { tfp.Delimiters = new string[] { ",", "<", ">" }; tfp.TextFieldType = FieldType.Delimited; mode = new CbDeviceInfo(); while (!tfp.EndOfData) { string[] content = tfp.ReadFields(); int number = Convert.ToInt32(content[0], 16); string value = content[2]; switch (number) { case 0: mode.HostNumber = Utils.StrToInt(value.Substring(0, 2), 1); mode.Frequency = Utils.StrToInt(value.Substring(2, 2), 1); mode.WirelessID = Utils.StrToInt(value.Substring(4, 8), 0); mode.IsLikeMachine = Utils.StrToInt(value.Substring(12, 2), 0); break; case 1: mode.Distance = Utils.StrToInt(value, 1); break; case 2: mode.EquipmentDelay = Utils.StrToInt(value, 1); break; case 3: //mode.CustomerNumber = Utils.StrToInt(value, 9887); break; case 8: mode.FieldPartition = Convert.ToInt32(value, 16); break; case 9: if (!string.IsNullOrEmpty(value)) { mode.IOSate = Utils.StrToInt(value, 0); } break; case 10: mode.AntiSubmarineBack = Utils.StrToInt(value, 0); break; case 12: switch (value.Substring(value.Length - 2, 2)) { case "F0": //继电器开闸 mode.DeviceMode = 3; break; case "AA": //学习遥控器开闸 mode.DeviceMode = 2; break; case "FF": //串口开闸 mode.DeviceMode = 0; mode.DeviceNumber = Convert.ToInt32(value.Substring(0, 6), 16); break; case "55": //无线电开闸 mode.DeviceMode = 1; mode.DeviceNumber = Convert.ToInt32(value.Substring(0, 6), 16); break; } break; case 13: mode.Language = Utils.StrToInt(value, 0); break; case 15: mode.VehicleDetection = Utils.StrToInt(value, 0); break; case 17: mode.VagueQueryNumber = Utils.StrToInt(value, 0); break; } } deviceinfos.Add(mode); } } this.Invoke(new EventHandler(delegate { l_Title.Text = "正在保存数据,请勿操作。"; btn_Enter.Enabled = false; Dbhelper.Db.Insert <CbDeviceInfo>(deviceinfos.ToArray()); this.DialogResult = DialogResult.OK; })); } catch (Exception ex) { CustomExceptionHandler.GetExceptionMessage(ex); MessageBox.Show("导入失败错误数据:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); Close(); } }
/// <summary> /// 生成图标文件 /// </summary> /// <returns></returns> public ActionResult GenerateIconCSS() { CommonResult result = new CommonResult(); string regex = "^\\.(?<name>.*?):before\\s*\\{"; List <string> filePathList = new List <string>() { "~/Content/themes/metronic/assets/global/plugins/bootstrap/css/bootstrap.css", "~/Content/themes/metronic/assets/global/plugins/font-awesome/css/font-awesome.css", "~/Content/themes/metronic/assets/global/plugins/simple-line-icons/simple-line-icons.css", }; //图标类型 List <string> sourceTypeList = new List <string>() { "Glyphicons", "FontAwesome", "SimpleLine", }; List <string> prefixList = new List <string>() { "glyphicon ", "fa ", "", }; //对每个文件进行匹配并存储 int i = 0; try { foreach (string filePath in filePathList) { string realPath = Server.MapPath(filePath); if (FileUtil.FileIsExist(realPath)) { string sourceType = sourceTypeList[i]; BLLFactory <BootstrapIcon> .Instance.DeleteBySourceType(sourceType); string prefix = prefixList[i]; string content = FileUtil.FileToString(realPath); List <string> matchList = CRegex.GetList(content, regex, 1); foreach (string item in matchList) { //包含特殊的字符,去掉即可 if (item.IndexOfAny(new char[] { '.', '>', '+' }) > 0) { continue; } BootstrapIconInfo info = new BootstrapIconInfo() { DisplayName = item, ClassName = prefix + item, CreateTime = DateTime.Now, SourceType = sourceType, }; BLLFactory <BootstrapIcon> .Instance.Insert(info); } result.Success = true; } i++; } } catch (Exception ex) { result.Success = false; result.ErrorMessage = ex.Message; LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(BootstrapIconController)); } return(ToJsonContent(result)); }
private string getAttachValue(string attach, string value) { string regex = "(?:^|\\?|&)" + value.ToLower() + "=(?<value>[\\s\\S]+?)(?:&|$)"; return(CRegex.GetText(attach.ToLower(), regex, "value")); }
public string BindRews()//查询函数 返回拼凑好的列表 { StringBuilder sb1 = new StringBuilder(); try { //List<RNews> list = RNewsDAL.m_RNewsDal.GetList("NewsClass='线报活动'", pagesize, page, true, "*", "Id", para); DataTable dt = RNewsDAL.GetUserScoreTop(isclass, page); for (int i = 0; i < dt.Rows.Count; i++) { //sb1.Append(string.Format(@"1={0},2={1},3={2},4={3},5={4},6={5},7={6},8={7}", dt.Rows[i][0].ToString(), dt.Rows[i][1].ToString(), dt.Rows[i][2].ToString(), dt.Rows[i][3].ToString(), dt.Rows[i][4].ToString(), dt.Rows[i][5].ToString(), dt.Rows[i][6].ToString(), dt.Rows[i][7].ToString())); sb1.Append(string.Format(@"<li><div class='thumbnail col-lg-3 col-md-3 col-sm-3 col-xs-3'><img src='{0}' alt=''></div>", dt.Rows[i][3].ToString())); sb1.Append(string.Format(@"<div class='detailed col-lg-9 col-md-9 col-sm-9 col-xs-9'><h3><a target='_blank' href='articleContent.aspx?id={0}'>{1}</a></h3>", dt.Rows[i][8].ToString(), dt.Rows[i][1].ToString())); sb1.Append(string.Format(@"<div class='wztime'><span >时间:{0}</span><span class='hidden-xs'>作者:{1}</span><span class='hidden-xs'>星级:<img src='img/s{2}.gif' alt=''></span>", dt.Rows[i][4].ToString(), dt.Rows[i][7].ToString(), dt.Rows[i][5].ToString())); sb1.Append(string.Format(@"<p class='wzxiangxi col-lg-12 col-md-12 col-sm-12 hidden-xs'>{0}</p></div></li>", CRegex.FilterHTML(dt.Rows[i][2].ToString()))); } //sb1.Append(string.Format(@"<li><a target='_blank' href=""/RNewsM.aspx?id={0}"" title=""{3}"">{1}</a><span>{2}</span></li>", i.ID, STitle, i.CreatedTime.ToShortDateString().ToString(), i.Title)); //GridView1.DataSource = list; // GridView1.DataBind(); } catch (Exception ex) { Response.Write("网站正在维修中..."); } return(sb1.ToString()); }
public string AddComment() { string title = context.Request.Form["title"].ToString(); string text = context.Request.Form["text"].ToString(); //过滤html标签再判断是否为空 if (CRegex.FilterHTML(text) == "") { rm.Info = "内容不能为空"; return(jss.Serialize(rm)); } else if (CRegex.FilterHTML(text).Length > 500 || CRegex.FilterHTML(text).Length < 6) { rm.Info = "问题内容长度在6~500之间"; return(jss.Serialize(rm)); } else { string strIP = WebHelp.GetIP(); User user = UserDal.CurrentUser();//获取当前登陆用户 List <dbParam> list = new List <dbParam>() { new dbParam() { ParamName = "@ClientIP", ParamValue = strIP }, new dbParam() { ParamName = "@UserId", ParamValue = user.UserId } }; #region 一IP,同一当前日期(年月日),可以确定当天评论次数。 List <WebComment> wList = WebCommentDAL.m_WebCommentDal.GetList(" ClientIP=@ClientIP and UserId=@UserId", list); int count = 0; if (wList.Count == 0) { count = 0; } else { string DateCurrent = string.Format("{0:D}", DateTime.Now);//设置当前日期(年-月-日) foreach (var w in wList) { if (DateCurrent == string.Format("{0:D}", w.CreatedTime)) { count++; } } } #endregion //同一用户不能一天超过三次留言 if (count >= 3) { rm.Info = "一天最多只能发帖三次"; jss.Serialize(rm); } else { if (user.Type < 0) { rm.Info = "只有已登录用户才能发帖"; jss.Serialize(rm); } else { WebComment webCom = new WebComment(); webCom.CommentTitle = title; webCom.CommentText = text; webCom.CreatedTime = DateTime.Now; webCom.ClientIP = WebHelp.GetIP(); webCom.UserId = user.UserId; WebCommentDAL.m_WebCommentDal.Add(webCom); rm.Success = true; rm.Info = "提交成功"; } } } return(jss.Serialize(rm)); }
private void btnModField_Click(object sender, EventArgs e) { StdFieldInfo aftermodstdFieldInfo = new StdFieldInfo(); aftermodstdFieldInfo.Gid = _beforemodstdFieldInfo.Gid; aftermodstdFieldInfo.Name = txtName.Text.Trim(); aftermodstdFieldInfo.ChineseName = txtChineseName.Text.Trim(); aftermodstdFieldInfo.DataType = lueFieldType.EditValue.ToString(); StringBuilder content = new StringBuilder(); #region 检查一下字段是否存在 foreach (StdFieldInfo dataTypeInfo in _lstDataTypeInfo) { if (string.IsNullOrEmpty(dataTypeInfo.Gid)) { continue; } // 与别的字段重名,不允许修改 if (string.Equals(aftermodstdFieldInfo.Name, dataTypeInfo.Name) && !string.Equals(_beforemodstdFieldInfo.Name, dataTypeInfo.Name)) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_ERR, "该标准字段已存在,不允许修改", typeof(FrmModField)); MessageDxUtil.ShowWarning("该标准字段已存在,不允许修改"); return; } } #endregion #region 取project.xml 判断当前数据库 XmlHelper xmlprojectthelper = new XmlHelper(@"XML\project.xml"); XmlNodeList xmlprejectNodeLst = xmlprojectthelper.Read("datatype"); if (xmlprejectNodeLst.Count == 0) { return; } XmlNode xn1project = xmlprejectNodeLst[0]; // 将节点转换为元素,便于得到节点的属性值 XmlElement xeproject = (XmlElement)xn1project; // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0project = xeproject.ChildNodes; string dbType = xnl0project.Item(4).InnerText; #endregion #region 生成SQL文件 if (!string.Equals(_beforemodstdFieldInfo.Name, aftermodstdFieldInfo.Name) || !string.Equals(_beforemodstdFieldInfo.DataType, aftermodstdFieldInfo.DataType)) { // SQLServer 修改字段 exec sp_rename '表名.列名','新列名' -- 注意,单引号不可省略。 // SQLServer 修改字段类型 alter table 表名 alter column 字段名 type not null // MySql 修改字段 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型 // MySql 修改字段类型 ALTER TABLE 表名 CHANGE 字段名 字段名 新字段类型 string saveFile = FileDialogHelper.SaveText("更新字段.sql", "C:\\myares\\"); if (!string.IsNullOrEmpty(saveFile)) { String[] sqltablefileNames = DirectoryUtil.GetFileNames(@"XML\", "*.table", true); foreach (string tablefileName in sqltablefileNames) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_DEBUG, string.Format("开始变更{0}文件中变更前字段为{1}", tablefileName, _beforemodstdFieldInfo.Name), typeof(FrmModField)); XmlHelper xmltablehelper = new XmlHelper(tablefileName); try { XmlNodeList xmlNodeLst = xmltablehelper.Read("datatype/fieldsinfo"); for (Int32 i = 0; i < xmlNodeLst.Count; i++) { // 字段变更 if (string.Equals(xmlNodeLst[i].ChildNodes.Item(0).InnerText, _beforemodstdFieldInfo.Name) && !string.Equals(_beforemodstdFieldInfo.Name, aftermodstdFieldInfo.Name)) { #region 读取Table.xml 配置信息 XmlHelper xmltableshelper = new XmlHelper(@"XML\tables.xml"); XmlNodeList xmlNodeLst22 = xmltableshelper.Read("datatype/tabletype"); Dictionary <string, string> guidGroup = new Dictionary <string, string>(); Dictionary <string, string> tableGroup = new Dictionary <string, string>(); guidGroup.Clear(); tableGroup.Clear(); foreach (XmlNode xn1 in xmlNodeLst22) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 获取字符串中的英文字母 [a-zA-Z]+ string GroupEnglishName = CRegex.GetText(xe.GetAttribute("name").ToString(), "[a-zA-Z]+", 0); guidGroup.Add(xe.GetAttribute("gid").ToString(), string.Format("{0}{1}_", Const.TablePre, GroupEnglishName)); } XmlNodeList xmlNodeLst2 = xmltableshelper.Read("datatype/dataitem"); foreach (XmlNode xn1 in xmlNodeLst2) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 // 得到ConstantInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; tableGroup.Add(xnl0.Item(0).InnerText, guidGroup[xnl0.Item(3).InnerText]); } #endregion string tableName = xmltablehelper.Read("datatype/basicinfo/item/name").Item(0).InnerText; content.Append(string.Format("exec sp_rename '{0}.{1}','{2}';\r\nGO\r\n\r\n", tableGroup[tableName] + tableName, _beforemodstdFieldInfo.Name, aftermodstdFieldInfo.Name)); } if (string.Equals(xmlNodeLst[i].ChildNodes.Item(0).InnerText, _beforemodstdFieldInfo.Name) && !string.Equals(_beforemodstdFieldInfo.DataType, aftermodstdFieldInfo.DataType)) { #region 先读取datatype.xml 在读取defaulttype.xml 然后Linq 查询保存到数据字典dic中 XmlHelper xmldatatypehelper = new XmlHelper(@"XML\datatype.xml"); XmlNodeList xmldatatypeNodeLst = xmldatatypehelper.Read("datatype"); List <DataTypeInfo> dataTypeInfoList = new List <DataTypeInfo>(); foreach (XmlNode xn1 in xmldatatypeNodeLst) { DataTypeInfo dataTypeInfo = new DataTypeInfo(); // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 dataTypeInfo.Gid = xe.GetAttribute("gid").ToString(); // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; dataTypeInfo.Name = xnl0.Item(0).InnerText; dataTypeInfo.StdType = xnl0.Item(2).InnerText; dataTypeInfo.Length = xnl0.Item(3).InnerText; dataTypeInfo.Precision = xnl0.Item(4).InnerText; dataTypeInfoList.Add(dataTypeInfo); } XmlHelper defaulttypexmlHelper = new XmlHelper(@"XML\defaulttype.xml"); XmlNodeList defaulttypexmlNodeLst = defaulttypexmlHelper.Read("datatype"); Dictionary <string, string> dict = new Dictionary <string, string>(); foreach (var dataTypeInfo in dataTypeInfoList) { foreach (XmlNode xn1 in defaulttypexmlNodeLst) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; string value = string.Empty; if (dbType == "Oracle") { value = xnl0.Item(2).InnerText; } else if (dbType == "Mysql") { value = xnl0.Item(3).InnerText; } else if (dbType == "DB2") { value = xnl0.Item(4).InnerText; } else if (dbType == "SqlServer") { value = xnl0.Item(5).InnerText; } else if (dbType == "Sqlite") { value = xnl0.Item(6).InnerText; } else if (dbType == "Access") { value = xnl0.Item(7).InnerText; } // 找到匹配记录 if (dataTypeInfo.StdType == xnl0.Item(0).InnerText) { if (value.Contains("$L")) { if (String.Empty == dataTypeInfo.Length) { value = value.Replace("$L", "0"); } else { value = value.Replace("$L", dataTypeInfo.Length); } } if (value.Contains("$P")) { if (String.Empty == dataTypeInfo.Precision) { value = value.Replace("$P", "0"); } else { value = value.Replace("$P", dataTypeInfo.Precision); } } dict.Add(dataTypeInfo.Name, value); } } } #endregion #region 读取Table.xml 配置信息 XmlHelper xmltableshelper = new XmlHelper(@"XML\tables.xml"); XmlNodeList xmlNodeLst22 = xmltableshelper.Read("datatype/tabletype"); Dictionary <string, string> guidGroup = new Dictionary <string, string>(); Dictionary <string, string> tableGroup = new Dictionary <string, string>(); guidGroup.Clear(); tableGroup.Clear(); foreach (XmlNode xn1 in xmlNodeLst22) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 获取字符串中的英文字母 [a-zA-Z]+ string GroupEnglishName = CRegex.GetText(xe.GetAttribute("name").ToString(), "[a-zA-Z]+", 0); guidGroup.Add(xe.GetAttribute("gid").ToString(), string.Format("{0}{1}_", Const.TablePre, GroupEnglishName)); } XmlNodeList xmlNodeLst2 = xmltableshelper.Read("datatype/dataitem"); foreach (XmlNode xn1 in xmlNodeLst2) { // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 // 得到ConstantInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; tableGroup.Add(xnl0.Item(0).InnerText, guidGroup[xnl0.Item(3).InnerText]); } #endregion string tableName = xmltablehelper.Read("datatype/basicinfo/item/name").Item(0).InnerText; content.Append(string.Format("alter table {0} alter column {1} {2};\r\nGO\r\n\r\n", tableGroup[tableName] + tableName, aftermodstdFieldInfo.Name, dict[aftermodstdFieldInfo.DataType])); } } xmltablehelper.Save(false); } catch (Exception ex) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmModField)); MessageDxUtil.ShowError(ex.Message); } LogHelper.WriteLog(LogLevel.LOG_LEVEL_DEBUG, string.Format("结束变更{0}文件中变更前字段为{1}", tablefileName, _beforemodstdFieldInfo.Name), typeof(FrmModField)); } FileUtil.WriteText(saveFile, content.ToString(), Encoding.UTF8); if (MessageDxUtil.ShowYesNoAndTips("保存成功,是否打开文件?") == System.Windows.Forms.DialogResult.Yes) { System.Diagnostics.Process.Start(saveFile); } } } #endregion #region 修改*.table 字段 String[] tablefileNames = DirectoryUtil.GetFileNames(@"XML\", "*.table", true); foreach (string tablefileName in tablefileNames) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_DEBUG, string.Format("开始变更{0}文件中变更前字段为{1}", tablefileName, _beforemodstdFieldInfo.Name), typeof(FrmModField)); XmlHelper xmltablehelper = new XmlHelper(tablefileName); try { #region 更新数据 if (!string.Equals(_beforemodstdFieldInfo.Name, aftermodstdFieldInfo.Name)) { XmlNodeList xmlNodeLst = xmltablehelper.Read("datatype/fieldsinfo"); for (Int32 i = 0; i < xmlNodeLst.Count; i++) { if (string.Equals(xmlNodeLst[i].ChildNodes.Item(0).InnerText, _beforemodstdFieldInfo.Name)) { xmlNodeLst[i].ChildNodes.Item(0).InnerText = aftermodstdFieldInfo.Name; } } } xmltablehelper.Save(false); #endregion } catch (Exception ex) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmModField)); MessageDxUtil.ShowError(ex.Message); } LogHelper.WriteLog(LogLevel.LOG_LEVEL_DEBUG, string.Format("结束变更{0}文件中变更前字段为{1}", tablefileName, _beforemodstdFieldInfo.Name), typeof(FrmModField)); } #endregion #region 修改*.entity 字段 String[] entityfileNames = DirectoryUtil.GetFileNames(@"XML\", "*.entity", true); foreach (string entityfileName in entityfileNames) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_DEBUG, string.Format("开始变更{0}文件中变更前字段为{1}", entityfileName, _beforemodstdFieldInfo.Name), typeof(FrmModField)); XmlHelper xmlentityhelper = new XmlHelper(entityfileName); try { #region 更新数据 if (!string.Equals(_beforemodstdFieldInfo.Name, aftermodstdFieldInfo.Name)) { XmlNodeList xmlNodeLst = xmlentityhelper.Read("datatype/fieldsinfo"); for (Int32 i = 0; i < xmlNodeLst.Count; i++) { if (string.Equals(xmlNodeLst[i].ChildNodes.Item(0).InnerText, _beforemodstdFieldInfo.Name)) { xmlNodeLst[i].ChildNodes.Item(0).InnerText = aftermodstdFieldInfo.Name; } } } xmlentityhelper.Save(false); #endregion } catch (Exception ex) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmModField)); MessageDxUtil.ShowError(ex.Message); } LogHelper.WriteLog(LogLevel.LOG_LEVEL_DEBUG, string.Format("结束变更{0}文件中变更前字段为{1}", entityfileName, _beforemodstdFieldInfo.Name), typeof(FrmModField)); } #endregion #region 修改stdfield.xml文件 XmlHelper xmlstdfieldhelper = new XmlHelper(@"XML\stdfield.xml"); try { #region 更新数据 if (!string.Equals(_beforemodstdFieldInfo.Name, aftermodstdFieldInfo.Name)) { xmlstdfieldhelper.Replace(string.Format("datatype/dataitem/item[@gid=\"{0}\"]/name", aftermodstdFieldInfo.Gid), aftermodstdFieldInfo.Name); } if (!string.Equals(_beforemodstdFieldInfo.ChineseName, aftermodstdFieldInfo.ChineseName)) { xmlstdfieldhelper.Replace(string.Format("datatype/dataitem/item[@gid=\"{0}\"]/chineseName", aftermodstdFieldInfo.Gid), aftermodstdFieldInfo.ChineseName); } if (!string.Equals(_beforemodstdFieldInfo.DataType, aftermodstdFieldInfo.DataType)) { xmlstdfieldhelper.Replace(string.Format("datatype/dataitem/item[@gid=\"{0}\"]/datatype", aftermodstdFieldInfo.Gid), aftermodstdFieldInfo.DataType); } xmlstdfieldhelper.Save(false); #endregion } catch (Exception ex) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmModField)); MessageDxUtil.ShowError(ex.Message); } #endregion this.Close(); }
/// <summary> /// 回复当前用户的评论 /// </summary> /// <returns></returns> public string AddReplyComment() { int webCommentId = Convert.ToInt32(context.Request.Form["webCommentId"].ToString()); string text = context.Request.Form["text"].ToString(); if (CRegex.FilterHTML(text) == "") { rm.Info = "内容不能为空"; return(jss.Serialize(rm)); } else if (CRegex.FilterHTML(text).Length > 500 || CRegex.FilterHTML(text).Length < 6) { rm.Info = "回复内容长度在6~500之间"; return(jss.Serialize(rm)); } else { string strIP = WebHelp.GetIP(); User user = UserDal.CurrentUser();//获取当前登陆用户 List <dbParam> list = new List <dbParam>() { new dbParam() { ParamName = "@ClientIP", ParamValue = strIP }, new dbParam() { ParamName = "@UserId", ParamValue = user.UserId } }; #region 一IP,同一当前日期(年月日),可以确定当天回复次数。 List <WebCommentReply> wcrList = CommentReplyDAL.m_WebCommentReplyDAL.GetList(" ClientIP=@ClientIP and UserId=@UserId", list); int count = 0; if (wcrList.Count == 0) { count = 0; } else { string DateCurrent = string.Format("{0:D}", DateTime.Now);//设置当前日期(年-月-日) foreach (var wcr in wcrList) { if (DateCurrent == string.Format("{0:D}", wcr.CreatedTime)) { count++; } } } #endregion //同一用户不能一天超过三次留言 if (count >= 3) { rm.Info = "一天最多只能回复三次"; jss.Serialize(rm); } else { if (user.Type < 0) { rm.Info = "只有已登录用户用户才能评论"; jss.Serialize(rm); } else { WebCommentReply webComReply = new WebCommentReply(); webComReply.WebCommentId = webCommentId; webComReply.UserId = user.UserId; webComReply.CommentReplyText = text; webComReply.CreatedTime = DateTime.Now; webComReply.ClientIP = WebHelp.GetIP(); CommentReplyDAL.m_WebCommentReplyDAL.Add(webComReply); rm.Success = true; rm.Info = "评论成功"; } } } return(jss.Serialize(rm)); }