private void UpdateBBCodeInfo_Click(object sender, EventArgs e) { if (base.CheckCookie()) { foreach (DictionaryEntry item in new SortedList { { "参数个数", this.param.Text }, { "嵌套次数", this.nest.Text } }) { if (item.Value.ToInt(-1) < 0) { base.RegisterStartupScript("", "<script>alert('输入错误:" + item.Key + ",只能是0或者正整数');window.location.href='forum_editbbcode.aspx';</script>"); return; } } string a = this.icon.UpdateFile(); if (String.IsNullOrEmpty(a)) { a = this.ViewState["inco"].ToString(); } this.replacement.is_replace = (this.example.is_replace = (this.explanation.is_replace = (this.paramsdescript.is_replace = (this.paramsdefvalue.is_replace = false)))); BbCode.UpdateBBCode(int.Parse(this.available.SelectedValue), Regex.Replace(this.tag.Text.Replace("<", "").Replace(">", ""), "^[\\>]|[\\{]|[\\}]|[\\[]|[\\]]|[\\']|[\\.]", ""), a, this.replacement.Text, this.example.Text, this.explanation.Text, this.param.Text, this.nest.Text, this.paramsdescript.Text, this.paramsdefvalue.Text, DNTRequest.GetInt("id", 0)); AdminVisitLog.InsertLog(this.userid, this.username, this.usergroupid, this.grouptitle, this.ip, "更新" + Utils.ProductName + "代码", "TAB为:" + this.tag.Text); base.RegisterStartupScript("PAGE", "window.location.href='forum_bbcodegrid.aspx';"); } }
public static IComment ToModel(this ApiWhitelabelCommentModel commentModel) { if (commentModel == null) { return(null); } var comment = new Comment { Id = commentModel.Id, UserId = commentModel.User?.Id ?? Guid.Empty, AvatarUrl = commentModel.User?.Avatar?.Small, DateTime = commentModel.DateTime, DisplayName = commentModel.User?.DisplayName, Text = commentModel.Comment, }; if (!string.IsNullOrWhiteSpace(commentModel.Comment)) { var text = EmojiHelper.ShortnameToUnicode(commentModel.Comment); text = BbCode.ConvertToHtml(text); comment.Text = text; } return(comment); }
private void DeleteBBCode_Click(object sender, EventArgs e) { if (base.CheckCookie()) { BbCode.DeleteBBCode(Request["id"]); AdminVisitLog.InsertLog(this.userid, this.username, this.usergroupid, this.grouptitle, this.ip, "删除" + Utils.ProductName + "代码", "TAB为:" + this.tag.Text); base.RegisterStartupScript("PAGE", "window.location.href='forum_bbcodegrid.aspx';"); } }
public void bntCreate_Click(Object sender, EventArgs e) { var userInSession = (Users)Session["userinsession"]; var id = Page.Request.Params["id"]; Feedback feedback; try { feedback = new Feedback { ID = Convert.ToInt32(id) }; feedback.GetById(); } catch (Exception) { feedback = new Feedback { SecureID = id }; feedback.GetBySecureID(); } if (feedback.ID == 0) { feedback = new Feedback { SecureID = id }; feedback.GetBySecureID(); } var feedbackcomment = new FeedbackComments() { Comment = BbCode.BBcodeToHtml(tbComment.Text), FeedbackID = feedback.ID, UserID = userInSession.ID, IsViewed = 0 }; feedbackcomment.Create(); feedback.ChangeDate = DateTime.Now; feedback.Update(); var userToMail = new Users { ID = Convert.ToInt32(feedback.UserID) }; userToMail.GetById(); var messageBody = String.Format("<table class='table'>" + "<tr><td colspan='2' style='padding-bottom: 15px; vertical-align: top'>Поступил новый комментарий к вашему обращению <a href='http://{2}/UserUI/FeedbackView.aspx?id={3}' target='_new'><i>{0}</i></a></td></tr>" + "<tr><td style='vertical-align: top'>Содержание комментария:</td><td>{1}</td></tr>" + "<tr><td colspan='2' style='padding-top: 15px; vertical-align: top'>Перейдите по <a href='http://{2}/UserUI/FeedbackView.aspx?id={3}' target='new'>этой</a> ссылке для ответа на комментарий.</td></tr></table>", feedback.Title, feedbackcomment.Comment, BackendHelper.TagToValue("current_app_address"), feedback.ID); EmailMethods.MailSendHTML("Новый комментарий к вашему обращению", messageBody, userToMail.Email); Page.Response.Redirect("~/ManagerUI/Menu/Souls/FeedbackView.aspx?id=" + id); }
public void bntCreate_Click(Object sender, EventArgs e) { var userInSession = (Users)Session["userinsession"]; var id = Page.Request.Params["id"]; var feedbackcomment = new FeedbackComments() { Comment = BbCode.BBcodeToHtml(tbComment.Text), FeedbackID = Convert.ToInt32(id), UserID = userInSession.ID, IsViewed = 1 }; feedbackcomment.Create(); var feedback = new Feedback() { ID = Convert.ToInt32(id), }; feedback.GetById(); feedback.ChangeDate = DateTime.Now; feedback.Update(); var roles = (List <Roles>)HttpContext.Current.Application["RolesList"]; if (feedback.TypeID == 0) { SendNotification(roles.Where(u => u.Feedback0 == 1).ToList(), feedback, feedbackcomment); } if (feedback.TypeID == 1) { SendNotification(roles.Where(u => u.Feedback1 == 1).ToList(), feedback, feedbackcomment); } if (feedback.TypeID == 2) { SendNotification(roles.Where(u => u.Feedback2 == 1).ToList(), feedback, feedbackcomment); } if (feedback.TypeID == 3) { SendNotification(roles.Where(u => u.Feedback3 == 1).ToList(), feedback, feedbackcomment); } if (feedback.TypeID == 4) { SendNotification(roles.Where(u => u.Feedback4 == 1).ToList(), feedback, feedbackcomment); } if (feedback.TypeID == 5) { SendNotification(roles.Where(u => u.Feedback5 == 1).ToList(), feedback, feedbackcomment); } if (feedback.TypeID == 6) { SendNotification(roles.Where(u => u.Feedback6 == 1).ToList(), feedback, feedbackcomment); } Page.Response.Redirect("~/UserUI/FeedbackView.aspx?id=" + id); }
private void AddAdInfo_Click(object sender, EventArgs e) { if (base.CheckCookie()) { this.replacement.is_replace = (this.example.is_replace = (this.explanation.is_replace = (this.paramsdescript.is_replace = (this.paramsdefvalue.is_replace = false)))); BbCode.CreateBBCCode(int.Parse(this.available.SelectedValue), Regex.Replace(this.tag.Text.Replace("<", "").Replace(">", ""), "^[\\>]|[\\{]|[\\}]|[\\[]|[\\]]|[\\']|[\\.]", ""), this.icon.UpdateFile(), this.replacement.Text, this.example.Text, this.explanation.Text, this.param.Text, this.nest.Text, this.paramsdescript.Text, this.paramsdefvalue.Text); AdminVisitLog.InsertLog(this.userid, this.username, this.usergroupid, this.grouptitle, this.ip, "添加" + Utils.ProductName + "代码", "TAG为:" + this.tag.Text); base.RegisterStartupScript("", "<script>window.location.href='forum_bbcodegrid.aspx';</script>"); } }
private void SetUnAvailable_Click(object sender, EventArgs e) { if (base.CheckCookie()) { if (Request["id"] != "") { BbCode.BatchUpdateAvailable(0, Request["id"]); base.Response.Redirect("forum_bbcodegrid.aspx"); return; } base.RegisterStartupScript("", "<script>alert('您未选中任何选项');window.location.href='forum_bbcodegrid.aspx';</script>"); } }
public static CustomEditorButtonInfo[] GetCustomEditButtonListWithInfo() { //var cacheService = XCache.Current; //CustomEditorButtonInfo[] array = cacheService.RetrieveObject(CacheKeys.FORUM_UI_CUSTOM_EDIT_BUTTON_INFO) as CustomEditorButtonInfo[]; //if (array == null) //{ // array = BBX.Data.Editors.GetCustomEditButtonListWithInfo(); // XCache.Add(CacheKeys.FORUM_UI_CUSTOM_EDIT_BUTTON_INFO, array); // Editors.ResetRegexCustomTag(array); //} //return array; return(BbCode.FindAllByAvailable(1).ToList().Select(e => e.Cast <CustomEditorButtonInfo>()).ToArray()); }
//public static string GetSmiliesCache() //{ // string text = XCache.Retrieve<String>(CacheKeys.FORUM_UI_SMILIES_LIST); // if (text.IsNullOrEmpty()) // { // var sb = new StringBuilder(); // //DataTable smiliesListDataTable = BBX.Data.Smilies.GetSmiliesListDataTable(); // var list = Smilie.FindAllWithCache(); // foreach (var sm in list) // { // if (sm.Type != 0) continue; // sb.AppendFormat("'{0}': [\r\n", sm.Code.Trim().Replace("'", "\\'")); // bool flag = false; // foreach (var sm2 in list) // { // if (sm2.Type == sm.ID) // { // sb.Append("{'code' : '"); // sb.Append(sm2.Code.Trim().Replace("'", "\\'")); // sb.Append("', 'url' : '"); // sb.Append(sm2.Url.Trim().Replace("'", "\\'")); // sb.Append("'},\r\n"); // flag = true; // } // } // if (sb.Length > 0 && flag) // { // sb.Remove(sb.Length - 3, 3); // } // sb.Append("\r\n],\r\n"); // } // sb.Remove(sb.Length - 3, 3); // text = sb.ToString(); // XCache.Add(CacheKeys.FORUM_UI_SMILIES_LIST, text); // } // return text; //} //public static string GetSmiliesFirstPageCache() //{ // string text = XCache.Retrieve<String>("/Forum/UI/SmiliesListFirstPage"); // if (text.IsNullOrEmpty()) // { // var sb = new StringBuilder(); // //DataTable smiliesListDataTable = BBX.Data.Smilies.GetSmiliesListDataTable(); // var list = Smilie.FindAllWithCache(); // foreach (var sm in list) // { // if (sm.Type != 0) continue; // sb.AppendFormat("'{0}': [\r\n", sm.Code.Trim().Replace("'", "\\'")); // bool flag = false; // int num = 0; // foreach (var sm2 in list) // { // if (sm2.Type == sm.ID && num < 16) // { // sb.Append("{'code' : '"); // sb.Append(sm2.Code.Trim().Replace("'", "\\'")); // sb.Append("', 'url' : '"); // sb.Append(sm2.Url.Trim().Replace("'", "\\'")); // sb.Append("'},\r\n"); // flag = true; // num++; // } // } // if (sb.Length > 0 && flag) // { // sb.Remove(sb.Length - 3, 3); // } // sb.Append("\r\n],\r\n"); // break; // } // sb.Remove(sb.Length - 3, 3); // text = sb.ToString(); // XCache.Add("/Forum/UI/SmiliesListFirstPage", text); // } // return text; //} //public static DataTable GetSmilieTypesCache() //{ // DataTable dataTable = XCache.Retrieve<DataTable>("/Forum/UI/SmiliesTypeList"); // if (dataTable == null || dataTable.Rows.Count == 0) // { // dataTable = BBX.Data.Smilies.GetSmiliesTypes(); // XCache.Add("/Forum/UI/SmiliesTypeList", dataTable); // } // return dataTable; //} public static string GetCustomEditButtonList() { string result; lock (lockHelper) { string text = XCache.Retrieve <String>(CacheKeys.FORUM_UI_CUSTOM_EDIT_BUTTON_LIST); if (text == null) { var sb = new StringBuilder(); //var customEditButtonList = DatabaseProvider.GetInstance().GetCustomEditButtonList(); var customEditButtonList = BbCode.FindAllByAvailable(1); //try //{ foreach (var bb in customEditButtonList) //while (customEditButtonList.Read()) { sb.AppendFormat(",'{0}':['", Utils.ReplaceStrToScript(bb.Tag)); sb.Append(Utils.ReplaceStrToScript(bb.Tag)); sb.Append("','"); sb.Append(Utils.ReplaceStrToScript(bb.Icon)); sb.Append("','"); sb.Append(Utils.ReplaceStrToScript(bb.Explanation)); sb.Append("',['"); sb.Append(Utils.ReplaceStrToScript(bb.ParamsDescript).Replace(",", "','")); sb.Append("'],['"); sb.Append(Utils.ReplaceStrToScript(bb.ParamsDefValue).Replace(",", "','")); sb.Append("'],"); sb.Append(Utils.ReplaceStrToScript(bb.Params + "")); sb.Append("]"); } if (sb.Length > 0) { sb.Remove(0, 1); } text = Utils.ClearBR(sb.ToString()); XCache.Add(CacheKeys.FORUM_UI_CUSTOM_EDIT_BUTTON_LIST, text); //} //finally //{ // customEditButtonList.Close(); //} } result = text; } return(result); }
public string ConvertToHtml(string bbcodeValue) { try { string ap = null; if (CommonTools.isEmpty(bbcodeValue) == false) { var html = BbCode.ToHtml(bbcodeValue); ap = html; } return(ap); } catch (Exception ex) { CommonTools.ErrorReporting(ex); return(null); } }
public void LoadAnnounceInf(int id) { //DataTable bBCode = BBCodes.GetBBCode(id); var code = BbCode.FindByID(id); if (code != null) { this.available.SelectedValue = code.Available.ToString(); this.tag.Text = code.Tag; this.replacement.Text = code.Replacement; this.example.Text = code.Example; this.explanation.Text = code.Explanation; this.paramsdescript.Text = code.ParamsDescript; this.paramsdefvalue.Text = code.ParamsDefValue; this.nest.Text = code.Nest.ToString(); this.param.Text = code.Params.ToString(); this.icon.Text = code.Icon; this.ViewState["inco"] = code.Icon; } }
private void UpdateText(Style style) { _activeLibrary.Clear(); _lines.Clear(); var def = new TextElement(); def.Font = style.Font; var elements = BbCode.Parse(_text, style, BbCodeEnabled); var textElements = new List <TextElement>(); var pos = new Point(); var tsize = new Point(); var advx = 0; var lineHeight = 0; var thisLine = new List <TextElement>(); _textSize = Point.Zero; if (TextWrap) { #region TextWrap = true var firstInLine = true; foreach (var element in elements) { var font = Gui.Renderer.GetFont(element.Font); if (element.Linebreak) { if (firstInLine) { lineHeight = Gui.Renderer.GetTextSize(" ", font).Y; } pos.X = 0; pos.Y += lineHeight + Leading; foreach (var el in thisLine) { el.Position.Y += lineHeight - el.Size.Y; } thisLine.Clear(); lineHeight = 0; textElements.Add(element); firstInLine = true; } else if (element.IsControl) { Control ctrl = null; if (_library.ContainsKey(element.Control)) { ctrl = _library[element.Control]; } else if (ControlRequest != null) { ctrl = ControlRequest(element.Control); _library.Add(element.Control, ctrl); } if (ctrl != null) { _activeLibrary.Add(element.Control, true); ctrl.Position = pos; ctrl.UserData = element.Control; if (ctrl.Parent == null) { Elements.Add(ctrl); } element.Size = ctrl.Size; tsize = ctrl.Size; if (pos.X + tsize.X < Size.X - (style.TextPadding.Left + style.TextPadding.Right)) { element.Position = pos; pos.X += ctrl.Size.X; lineHeight = Math.Max(lineHeight, tsize.Y); } else { pos.X = 0; pos.Y += lineHeight + Leading; foreach (var el in thisLine) { el.Position.Y += lineHeight - el.Size.Y; } thisLine.Clear(); textElements.Add(new TextElement { Linebreak = true }); firstInLine = true; element.Position = pos; pos.X += ctrl.Size.X; lineHeight = tsize.Y; } textElements.Add(element); //thisLine.Add(element); } } else { #region wrap var words = System.Text.RegularExpressions.Regex.Split(element.Text, @"(?=(?<=[^\s])\s+)"); var sub = new List <TextElement>(); var e = new TextElement(element); e.Text = string.Empty; e.Position = pos; var c = 0; var isBreak = false; foreach (var word in words) { if (word.Length == 0) { continue; } var temp = word; // if this is the first word in a new line // remove leading whitespaces if (firstInLine) { temp = word.TrimStart(); } tsize = Gui.Renderer.GetTextSize(e.Text + temp, font); lineHeight = Math.Max(lineHeight, tsize.Y); if (pos.X + tsize.X < Size.X - (style.TextPadding.Left + style.TextPadding.Right)) { // the word fits, add to current element e.Text += temp; e.Size = tsize; firstInLine = false; } else { #region new if (firstInLine) { // the word fits, add to current element e.Text += temp; e.Size = tsize; firstInLine = false; } else { // word does not fit, add the current element thisLine.Add(e); sub.Add(e); textElements.AddRange(sub); foreach (var el in thisLine) { el.Position.Y += lineHeight - el.Size.Y; } sub.Clear(); thisLine.Clear(); // reset line pos pos.X = 0; pos.Y += lineHeight + Leading; lineHeight = 0; // add a break var linebreak = new TextElement(e); linebreak.Linebreak = true; sub.Add(linebreak); // create new starting element e = new TextElement(element); e.Text = temp.TrimStart(); e.Position = pos; e.Size = Gui.Renderer.GetTextSize(e.Text, font); lineHeight = Math.Max(lineHeight, e.Size.Y); firstInLine = false; } #endregion #region old //if (c > 0) //{ // isBreak = true; // // the word does not fit // pos.x = 0; // pos.y += lineHeight + Leading; //} //// is more than one word in this line exceeding the break limit? //if (c > 0) //{ // // if so, we need to first add the current element, // thisLine.Add(e); // sub.Add(e); // foreach (TextElement el in thisLine) // { // el.Position.y += lineHeight - el.Size.y; // // el.Size.y += lineHeight - el.Size.y; // } // thisLine.Clear(); // lineHeight = 0; // TextElement linebreak = new TextElement(e); // linebreak.Linebreak = true; // sub.Add(linebreak); // e = new TextElement(element); // e.Text = temp.TrimStart(); // e.Position = pos; // e.Size = Gui.Renderer.GetTextSize(e.Text, font); // lineHeight = Math.Max(lineHeight, e.Size.y); // if (c <= words.Length) // isBreak = false; //} //else //{ // // if not, we just add the current word // e.Position = pos; // e.Text = temp; // e.Size = Gui.Renderer.GetTextSize(e.Text, font); // //sub.Add(e); //} #endregion //pos.x += tsize.x; } c++; } if (!isBreak) { //e.Size = Gui.Renderer.GetTextSize(e.Text, font); pos.X = pos.X + e.Size.X; lineHeight = Math.Max(lineHeight, e.Size.Y); sub.Add(e); } thisLine.AddRange(sub); textElements.AddRange(sub); #endregion } } foreach (var el in thisLine) { el.Position.Y += lineHeight - el.Size.Y; } #endregion } else { #region TextWrap = false var firstInLine = true; var singleLine = true; foreach (var element in elements) { var font = Gui.Renderer.GetFont(element.Font); if (element.Linebreak) { if (firstInLine) { lineHeight = Gui.Renderer.GetTextSize(" ", font).Y; } pos.X = 0; pos.Y += lineHeight + Leading; foreach (var el in thisLine) { el.Position.Y += lineHeight - el.Size.Y; // el.Size.y += lineHeight - el.Size.y; } thisLine.Clear(); lineHeight = 0; element.Position = pos; textElements.Add(element); firstInLine = true; singleLine = false; } else if (element.IsControl) { Control ctrl = null; if (_library.ContainsKey(element.Control)) { ctrl = _library[element.Control]; } else if (ControlRequest != null) { ctrl = ControlRequest(element.Control); _library.Add(element.Control, ctrl); } if (ctrl != null) { ctrl.Position = pos; if (ctrl.Parent == null) { Elements.Add(ctrl); } _activeLibrary.Add(element.Control, true); element.Position = pos; element.Size = ctrl.Size; pos.X += ctrl.Size.X; tsize = element.Size; lineHeight = Math.Max(lineHeight, tsize.Y); textElements.Add(element); //thisLine.Add(element); } } else { if (firstInLine) { element.Text = element.Text.TrimStart(); firstInLine = false; } tsize = Gui.Renderer.GetTextSize(string.IsNullOrEmpty(element.Text) ? " " : element.Text, font); lineHeight = Math.Max(lineHeight, tsize.Y); element.Position = pos; element.Size = tsize; textElements.Add(element); pos.X += tsize.X; thisLine.Add(element); } } foreach (var el in thisLine) { el.Position.Y += lineHeight - el.Size.Y; } #endregion #region AutoEllipsis (...) if (singleLine && AutoEllipsis && (AutoSize == AutoSize.None || AutoSize == AutoSize.Vertical)) { var removeAt = -1; var width = 0; var limit = Size.X - style.TextPadding.Left - style.TextPadding.Right; var align = TextAlign != Alignment.Inherit ? TextAlign : style.TextAlign; if (align == Alignment.TopLeft || align == Alignment.MiddleLeft || align == Alignment.BottomLeft) { for (var i = 0; i < textElements.Count; i++) { var font = Gui.Renderer.GetFont(textElements[i].Font); var ellipsis = Gui.Renderer.GetTextSize("...", font).X; if (width + textElements[i].Size.X + ellipsis <= limit) { width += textElements[i].Size.X; continue; } else { var text = string.Empty; var final = string.Empty; removeAt = i + 1; foreach (var c in textElements[i].Text) { final = text + c + "..."; var w = Gui.Renderer.GetTextSize(final, font).X; if (width + w >= limit) { textElements[i].Text = text + "..."; break; } else { text += c; } } break; } } if (removeAt > -1) { textElements.RemoveRange(removeAt, textElements.Count - removeAt); } } else if (align == Alignment.TopRight || align == Alignment.MiddleRight || align == Alignment.BottomRight) { for (var i = textElements.Count - 1; i >= 0; i--) { var font = Gui.Renderer.GetFont(textElements[i].Font); var ellipsis = Gui.Renderer.GetTextSize("...", font).X; var fullsize = textElements[i].Size.X; var oldpos = textElements[i].Position; if (width + textElements[i].Size.X + ellipsis <= limit) { width += textElements[i].Size.X; } else { var inc = string.Empty; var final = string.Empty; var text = textElements[i].Text; removeAt = i; for (var j = text.Length; j >= 0; j--) { var c = new char(); if (j < text.Length) { c = text[j]; final = "..." + c + inc; inc = c + inc; } else { final = "..." + inc; } if (j == 0 && removeAt == 0) { final = inc; } var w = Gui.Renderer.GetTextSize(final, font).X; var position = oldpos; position.X = oldpos.X + (fullsize - w); textElements[i].Text = final; textElements[i].Position = position; if (width + w > limit && j > 0) { break; } } break; } } if (removeAt > 0) { var ww = 0; for (var i = 0; i < removeAt; i++) { ww += textElements[i].Size.X; } textElements.RemoveRange(0, removeAt); for (var i = 0; i < textElements.Count; i++) { var position = textElements[i].Position; position.X -= ww; textElements[i].Position = position; } } } } #endregion } var line = new TextLine(); foreach (var element in textElements) { line.Width += element.Size.X; line.Elements.Add(element); _textSize.X = Math.Max(_textSize.X, line.Width); _textSize.Y = Math.Max(_textSize.Y, element.Position.Y + element.Size.Y); if (element.Linebreak) { _lines.Add(line); line = new TextLine(); } } _textSize += new Point(style.TextPadding.Left + style.TextPadding.Right, style.TextPadding.Top + style.TextPadding.Bottom); _lines.Add(line); _lastSize = Size; _isDirty = false; FinalizeTextLayout(style); foreach (var pair in _library) { if (!_activeLibrary.ContainsKey(pair.Key)) { Elements.Remove(pair.Value); } } }
public void BindData() { this.DataGrid1.AllowCustomPaging = false; this.DataGrid1.DataSource = BbCode.FindAllWithCache(); this.DataGrid1.DataBind(); }
private void UpdateText(Style style) { _lines.Clear(); if (string.IsNullOrEmpty(_text)) { return; } var def = new TextElement(); def.Font = style.Font; var elements = BbCode.Parse(_text, style, false); var textElements = new List <TextElement>(); var pos = new Point(); var tsize = new Point(); var lineHeight = 0; var thisLine = new List <TextElement>(); _textSize = Point.Zero; if (TextWrap) { #region TextWrap = true foreach (var element in elements) { var font = Gui.Renderer.GetFont(element.Font); if (element.Linebreak) { pos.X = 0; pos.Y += lineHeight + Leading; element.Position = pos; element.Size = Gui.Renderer.GetTextSize(" ", font); foreach (var el in thisLine) { if (!el.Linebreak) { el.Position.Y += lineHeight - el.Size.Y; } } thisLine.Clear(); lineHeight = element.Size.Y; textElements.Add(element); } else { #region wrap var words = element.Text.Split(' '); var sub = new List <TextElement>(); var e = new TextElement(element); e.Text = string.Empty; e.Position = pos; sub.Add(e); var i = 0; foreach (var word in words) { var temp = word; if (i > 0) { temp = " " + word; } tsize = Gui.Renderer.GetTextSize(temp, font); lineHeight = Math.Max(lineHeight, tsize.Y); var limit = Size.X - (style.TextPadding.Left + style.TextPadding.Right); i++; // the word fits, add to current element if (pos.X + tsize.X < limit) { e.Text += temp; e.Size = Gui.Renderer.GetTextSize(e.Text, font); pos.X += tsize.X; } else { // the whole word is larger than the text area if (tsize.X > limit) { } // the whole word fits into text area else { pos.X = 0; pos.Y += lineHeight + Leading; thisLine.Add(e); foreach (var el in thisLine) { if (!el.Linebreak) { el.Position.Y += lineHeight - el.Size.Y; } } thisLine.Clear(); lineHeight = 0; var linebreak = new TextElement(e); linebreak.Text = string.Empty; linebreak.Linebreak = true; linebreak.Position = pos; sub.Add(linebreak); e = new TextElement(element); e.Text = word; e.Position = pos; e.Size = Gui.Renderer.GetTextSize(e.Text, font); sub.Add(e); lineHeight = Math.Max(lineHeight, e.Size.Y); pos.X += tsize.X; } } } thisLine.AddRange(sub); textElements.AddRange(sub); #endregion } } foreach (var el in thisLine) { if (!el.Linebreak) { el.Position.Y += lineHeight - el.Size.Y; } } #endregion } else { foreach (var element in elements) { var font = Gui.Renderer.GetFont(element.Font); if (element.Linebreak) { pos.X = 0; pos.Y += lineHeight + Leading; element.Position = pos; element.Size = Gui.Renderer.GetTextSize(" ", font); foreach (var el in thisLine) { if (!el.Linebreak) { el.Position.Y += lineHeight - el.Size.Y; } } thisLine.Clear(); lineHeight = element.Size.Y; textElements.Add(element); } else { //if (!string.IsNullOrEmpty(element.Text)) //{ tsize = Gui.Renderer.GetTextSize(string.IsNullOrEmpty(element.Text) ? " " : element.Text, font); lineHeight = Math.Max(lineHeight, tsize.Y); element.Position = pos; element.Size = tsize; textElements.Add(element); pos.X += tsize.X; thisLine.Add(element); //} } } foreach (var el in thisLine) { if (!el.Linebreak) { el.Position.Y += lineHeight - el.Size.Y; } } } var line = new TextLine(); foreach (var element in textElements) { if (element.Linebreak) { line.CharLength += 1; line.Elements.Add(element); _lines.Add(line); line = new TextLine(); } else { line.Width += element.Size.X; line.CharLength += element.Text.Length; line.Elements.Add(element); } _textSize.X = Math.Max(_textSize.X, line.Width); _textSize.Y = Math.Max(_textSize.Y, element.Position.Y + element.Size.Y); } _lines.Add(line); _textSize += new Point(style.TextPadding.Left + style.TextPadding.Right, style.TextPadding.Top + style.TextPadding.Bottom); _lastSize = Size; _isDirty = false; //GetLineAndCol(); }
public void bntCreate_Click(Object sender, EventArgs e) { var fileName = String.Empty; if (fuImage.HasFile) { if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/Images/Feedback/"))) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/Images/Feedback/")); } if (fuImage.FileBytes.Length > 4000000) { lblError.Text = "Размер картинки должен быть меньее 4 мб."; return; } String ext = System.IO.Path.GetExtension(fuImage.FileName); if (ext.ToLower() != ".jpg" && ext.ToLower() != ".png" && ext.ToLower() != ".gif" && ext.ToLower() != ".jpeg") { lblError.Text = "Загружать можно исключительно картинки."; return; } fileName = OtherMethods.CreateUniqId(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) + ext; fuImage.PostedFile.SaveAs(Server.MapPath("~/Images/Feedback/") + fileName); } var userInSession = (Users)Session["userinsession"]; var feedback = new Feedback() { TypeID = Convert.ToInt32(ddlType.SelectedValue), PriorityID = Convert.ToInt32(ddlPriority.SelectedValue), StatusID = 0, Title = tbTitle.Text, Body = BbCode.BBcodeToHtml(tbBody.Text), UserID = userInSession.ID, PhotoName = fileName, ChangeDate = DateTime.Now, SecureID = OtherMethods.CreateFullUniqId(DateTime.Now.ToString("yyMdHms")) }; feedback.Create(); var roles = (List <Roles>)HttpContext.Current.Application["RolesList"]; if (feedback.TypeID == 0) { SendNotification(roles.Where(u => u.Feedback0 == 1).ToList(), feedback); } if (feedback.TypeID == 1) { SendNotification(roles.Where(u => u.Feedback1 == 1).ToList(), feedback); } if (feedback.TypeID == 2) { SendNotification(roles.Where(u => u.Feedback2 == 1).ToList(), feedback); } if (feedback.TypeID == 3) { SendNotification(roles.Where(u => u.Feedback3 == 1).ToList(), feedback); } if (feedback.TypeID == 4) { SendNotification(roles.Where(u => u.Feedback4 == 1).ToList(), feedback); } if (feedback.TypeID == 5) { SendNotification(roles.Where(u => u.Feedback5 == 1).ToList(), feedback); } if (feedback.TypeID == 6) { SendNotification(roles.Where(u => u.Feedback6 == 1).ToList(), feedback); } Page.Response.Redirect("~/UserUI/FeedbacksView.aspx"); }