public async Task <IActionResult> PurchaseReqLineExtendByPurchaseRequest(string key) { var message = "Data not been found."; try { if (!string.IsNullOrEmpty(key)) { #region Where string sWhere = $" LOWER(PRD.PSHNUM_0) = '{key.Trim().ToLower()}'"; #endregion Where #region Sort string sSort = $" PRD.PSHNUM_0,PRD.PSDLIN_0 ASC ";//QueryData = QueryData.OrderByDescending(x => x.PAYM.Prqdat0); #endregion Sort #region Query var sqlCommnad = new SqlCommandViewModel() { SelectCommand = $@" PRD.ROWID AS [PrSageLineId], PRD.PSHNUM_0 AS [PrNumber], PRD.PSDLIN_0 AS [PrLine], PRD.ITMREF_0 AS [ItemCode], ISNULL(TXT.TEXTE_0,PRD.ITMDES_0) AS [ItemName], PRD.QTYPUU_0 AS [Quantity] ", FromCommand = $@" [x3v11].[VIPCO].PREQUISD PRD LEFT OUTER JOIN [x3v11].[VIPCO].TEXCLOB TXT ON PRD.LINTEX_0 = TXT.CODE_0 ", WhereCommand = sWhere, OrderCommand = sSort }; #endregion var result = await this.repositoryPrLinePure.GetEntities(sqlCommnad); foreach (var item in result) { if (item.ItemName.StartsWith("{\\rtf1")) { item.ItemName = Rtf.ToHtml(item.ItemName); } } return(new JsonResult(result, this.DefaultJsonSettings)); } } catch (Exception ex) { message = $"Has error {ex.ToString()}"; } return(BadRequest(new { message })); }
static void Stub2() { OMOD omod = null; IScriptFunctions scriptFunctions = null; Rtf.ToHtml(""); }
public void Conversion_Formatting() { const string rtf = @"{\rtf1\ansi\ansicpg1252\uc1\deff1{\fonttbl {\f0\fswiss\fcharset0\fprq2 Arial;} {\f1\fswiss\fcharset0\fprq2 Verdana;} {\f2\froman\fcharset2\fprq2 Symbol;}} {\colortbl;\red255\green0\blue0;\red0\green255\blue0;\red0\green0\blue255;} {\stylesheet{\s0\itap0\nowidctlpar\f0\fs24 [Normal];}} {\*\generator TX_RTF32 14.0.520.501;} \sectd \pard\itap0\nowidctlpar\plain\f1\fs36 {Hellou RTF Wörld\par \f0\fs24\par with some symbols: ""{\f2\cf1\cb0\chcbpat3\i abc}""\par \par and some \b bold\b0, \i italic\i0, \ul underlined\ul0 and \strike strikethrough\strike0 text\par \par some nested styles: {\b\cf1 bold}, {\i\cf2 italic}, {\ul\cf3 underlined}, normal\par \par some combined styles: {\b bold+\i italic+\ul underlined} vs. normal\par \par and further: {\b bold, {\i bold+italic}, \ul bold+underlined{\plain, normal}}\par \par different ways: [A] == [\'41] == [\u65A] == {\uc0[\u65]}\par more unicode: Unicode: [\u915G] - ANSI-fallback: [G]\par same but different: ""{\upr{[G]}{\*\ud{[\uc0\u915]}}}""\par \par something to ignore: {\*\unsupportedtag {\b should not appear}{\i this neither}}{\b visible}. \par } }"; const string html = @"<!DOCTYPE html ><html><head><meta http-equiv=""content-type"" content=""text/html; charset=UTF-8"" /></head><body><p><span style=""font-family:Verdana;font-size:18pt"">Hellou RTF Wörld</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">with some symbols: ""</span><i><span style=""color:#ff0000;background-color:#0000ff;font-family:Symbol;font-size:12pt"">abc</span></i><span style=""font-family:Arial;font-size:12pt"">""</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">and some </span><b><span style=""font-family:Arial;font-size:12pt"">bold</span></b><span style=""font-family:Arial;font-size:12pt"">, </span><i><span style=""font-family:Arial;font-size:12pt"">italic</span></i><span style=""font-family:Arial;font-size:12pt"">, </span><u><span style=""font-family:Arial;font-size:12pt"">underlined</span></u><span style=""font-family:Arial;font-size:12pt""> and </span><s><span style=""font-family:Arial;font-size:12pt"">strikethrough</span></s><span style=""font-family:Arial;font-size:12pt""> text</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">some nested styles: </span><b><span style=""color:#ff0000;font-family:Arial;font-size:12pt"">bold</span></b><span style=""font-family:Arial;font-size:12pt"">, </span><i><span style=""color:#00ff00;font-family:Arial;font-size:12pt"">italic</span></i><span style=""font-family:Arial;font-size:12pt"">, </span><u><span style=""color:#0000ff;font-family:Arial;font-size:12pt"">underlined</span></u><span style=""font-family:Arial;font-size:12pt"">, normal</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">some combined styles: </span><b><span style=""font-family:Arial;font-size:12pt"">bold+</span></b><b><i><span style=""font-family:Arial;font-size:12pt"">italic+</span></i></b><b><i><u><span style=""font-family:Arial;font-size:12pt"">underlined</span></u></i></b><span style=""font-family:Arial;font-size:12pt""> vs. normal</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">and further: </span><b><span style=""font-family:Arial;font-size:12pt"">bold, </span></b><b><i><span style=""font-family:Arial;font-size:12pt"">bold+italic</span></i></b><b><span style=""font-family:Arial;font-size:12pt"">, </span></b><b><u><span style=""font-family:Arial;font-size:12pt"">bold+underlined</span></u></b><span style=""font-family:Arial;font-size:12pt"">, normal</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">different ways: [A] == [A] == [A] == [A]</span></p><p><span style=""font-family:Arial;font-size:12pt"">more unicode: Unicode: [Γ] - ANSI-fallback: [G]</span></p><p><span style=""font-family:Arial;font-size:12pt"">same but different: ""[Γ]""</span></p><p> </p><p><span style=""font-family:Arial;font-size:12pt"">something to ignore: </span><b><span style=""font-family:Arial;font-size:12pt"">visible</span></b><span style=""font-family:Arial;font-size:12pt"">.</span></p></body></html>"; var output = Rtf.ToHtml(rtf); Assert.AreEqual(html, output); }
/// <summary> /// RTF형식을 Html 형식으로 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ToHtmlButton_Click(object sender, RoutedEventArgs e) { using (var memory = new InMemoryRandomAccessStream()) { RichEditBoxTest.Document.SaveToStream(Windows.UI.Text.TextGetOptions.FormatRtf, memory); var streamToSave = memory.AsStream(); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); TextReader textReader = new StreamReader(streamToSave, Encoding.UTF8); // RTFPipe 라이브러리 사용 var libHtml = Rtf.ToHtml(new RtfSource(textReader)); libHtml = RtfToHtmlConverter.ParseHtmlText(libHtml); // Html code 출력 HtmlCodeViewer.Text = libHtml; var storageFolder = ApplicationData.Current.LocalFolder; // WebView navigation은 LoaclFolder 바로 밑에서는 동작하지 않아 폴더 새로 만들어줌 var testFolder = await storageFolder.CreateFolderAsync("TestFolder", CreationCollisionOption.ReplaceExisting); var testHtmlFile = await testFolder.CreateFileAsync("rtftohtmltestpage.html", CreationCollisionOption.ReplaceExisting); await FileIO.WriteTextAsync(testHtmlFile, libHtml); RtfToHtmlViewer.Navigate(new Uri("ms-appdata:///local/TestFolder/rtftohtmltestpage.html")); } // 기존 제작 컨버터 //RichEditBoxTest.Document.GetText(Windows.UI.Text.TextGetOptions.FormatRtf, out string fvff); //string htmlcode = await RtfToHtmlConverter.ParseRtfText(fvff); }
public void NonBreaking() { const string rtf = "{\\rtf1\\ansicpg1252\r\n{\r\n\\fonttbl\r\n{\\f0 Times New Roman;}\r\n{\\f1 Calibri;}\r\n}\r\n{\r\n\\colortbl\r\n;\r\n\\red0\\green0\\blue255;\r\n\\red0\\green0\\blue0;\r\n}\r\n\\nouicompat\\splytwnine\\htmautsp{\\pard\\plain\\ql{\\f1\\fs24\\cf2 <p><span style=\"color:#404040;font-family:calibri;font-size:12pt;\">On détermine la couverture de votre objectif de revenu d’invalidité en analysant dans quelle mesure vos rentrées de fonds couvrent vos sorties de fonds dans l'éventualité d’une invalidité. La couverture actuelle de votre objectif est de </span><strong><span style=\"color:#3265a4;font-family:calibri;font-size:12pt;\">79 %</span></strong><span style=\"color:#404040;font-family:calibri;font-size:12pt;\">. Votre besoin en revenu d'invalidité est de </span><strong><span style=\"color:#3265a4;font-family:calibri;font-size:12pt;\">3\\~320\\~853 $</span></strong><span style=\"color:#404040;font-family:calibri;font-size:12pt;\"> au cours de la période d'invalidité projetée de </span><strong><span style=\"color:#3265a4;font-family:calibri;font-size:12pt;\">192</span></strong><span style=\"color:#404040;font-family:calibri;font-size:12pt;\"> mois. Ce besoin inclut toutes les dépenses mensuelles nécessaires comme la nourriture, les vêtements et le logement. French blah.</span></p>}\\fs24\\par}\r\n}\r\n"; var output = Rtf.ToHtml(rtf); const string expected = "<div style=\"font-size:12pt;\"><p style=\"text-align:left;font-family:Calibri;margin:0;\"><p><span style=\"color:#404040;font-family:calibri;font-size:12pt;\">On d&#233;termine la couverture de votre objectif de revenu d&#8217;invalidit&#233; en analysant dans quelle mesure vos rentr&#233;es de fonds couvrent vos sorties de fonds dans l'&#233;ventualit&#233; d&#8217;une invalidit&#233;. La couverture actuelle de votre objectif est de </span><strong><span style=\"color:#3265a4;font-family:calibri;font-size:12pt;\">79 %</span></strong><span style=\"color:#404040;font-family:calibri;font-size:12pt;\">. Votre besoin en revenu d'invalidit&#233; est de </span><strong><span style=\"color:#3265a4;font-family:calibri;font-size:12pt;\">3 320 853 $</span></strong><span style=\"color:#404040;font-family:calibri;font-size:12pt;\"> au cours de la p&#233;riode d'invalidit&#233; projet&#233;e de </span><strong><span style=\"color:#3265a4;font-family:calibri;font-size:12pt;\">192</span></strong><span style=\"color:#404040;font-family:calibri;font-size:12pt;\"> mois. Ce besoin inclut toutes les d&#233;penses mensuelles n&#233;cessaires comme la nourriture, les v&#234;tements et le logement. French blah.</span></p></p></div>"; Assert.AreEqual(expected, output); }
private string rtfToHtml(string rtfValue) { using (TextReader tr = new StringReader(rtfValue)) { RtfSource rtfs = new RtfSource(tr); return(Rtf.ToHtml(rtfs).Replace("<tab>", " ")); } }
public static byte[] ToHtml(byte[] value) { using (var reader = new StreamReader(new MemoryStream(value))) { var rtf = new RtfSource(reader); return(Encoding.UTF8.GetBytes(Rtf.ToHtml(rtf))); } }
private void TestConvert(string path) { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(path + ".rtf")) using (var expectedReader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(path + ".html"))) { var actual = Rtf.ToHtml(stream); var expected = expectedReader.ReadToEnd(); Assert.AreEqual(expected, actual); } }
private void TestParse(string path) { using (var stream = File.Exists(path) ? new FileStream(path, FileMode.Open, FileAccess.Read) : Assembly.GetExecutingAssembly().GetManifestResourceStream(path + ".rtf")) { var actual = Rtf.ToHtml(stream); Assert.Fail(); } }
public static byte[] ToMarkdown(byte[] value) { using (var reader = new StreamReader(new MemoryStream(value))) { var rtf = new RtfSource(reader); using (var w = new System.IO.StringWriter()) using (var md = new MarkdownWriter(w)) { Rtf.ToHtml(rtf, md); return(Encoding.UTF8.GetBytes(w.ToString())); } } }
static string ConvertRtfToHtml(string rtfCode) { if (!rtfCode.StartsWith(@"{\rtf")) { return(null); } const string missingVersionString = @"{\rtf\"; if (rtfCode.StartsWith(missingVersionString)) { rtfCode = @"{\rtf1\" + rtfCode.Substring(missingVersionString.Length); } return(Rtf.ToHtml(rtfCode)); }
public void AttachmentRender() { const string rtf = @"{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math{\*\falt Calisto MT};}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri{\*\falt Times New Roman};}{\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light{\*\falt Calibri};}{\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri{\*\falt Times New Roman};}{\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\f348\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f349\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f351\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f352\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f353\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f354\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f355\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f356\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f688\fbidi \froman\fcharset238\fprq2 Cambria Math CE{\*\falt Calisto MT};}{\f689\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr{\*\falt Calisto MT};}{\f691\fbidi \froman\fcharset161\fprq2 Cambria Math Greek{\*\falt Calisto MT};}{\f692\fbidi \froman\fcharset162\fprq2 Cambria Math Tur{\*\falt Calisto MT};}{\f695\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic{\*\falt Calisto MT};}{\f696\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese){\*\falt Calisto MT};}{\f738\fbidi \fswiss\fcharset238\fprq2 Calibri CE{\*\falt Times New Roman};}{\f739\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr{\*\falt Times New Roman};}{\f741\fbidi \fswiss\fcharset161\fprq2 Calibri Greek{\*\falt Times New Roman};}{\f742\fbidi \fswiss\fcharset162\fprq2 Calibri Tur{\*\falt Times New Roman};}{\f745\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic{\*\falt Times New Roman};}{\f746\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese){\*\falt Times New Roman};}{\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE{\*\falt Calibri};}{\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr{\*\falt Calibri};}{\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek{\*\falt Calibri};}{\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur{\*\falt Calibri};}{\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic{\*\falt Calibri};}{\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese){\*\falt Calibri};}{\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE{\*\falt Times New Roman};}{\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr{\*\falt Times New Roman};}{\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek{\*\falt Times New Roman};}{\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur{\*\falt Times New Roman};}{\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic{\*\falt Times New Roman};}{\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese){\*\falt Times New Roman};}{\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red5\green99\blue193;\red149\green79\blue114;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf17 \sbasedon10 \ssemihidden \sunhideused \styrsid16650015 Hyperlink;}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf18 \sbasedon10 \ssemihidden \sunhideused \styrsid16650015 FollowedHyperlink;}{\*\cs17 \additive \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\cf0 \sbasedon10 \ssemihidden \spriority0 \spersonal \scompose \styrsid16650015 EmailStyle17;}}{\*\revtbl {Unknown;}}{\*\rsidtbl \rsid5455638\rsid7608263\rsid16650015}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin150\dgvorigin0\dghshow1\dgvshow1\jexpand\viewkind5\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct\asianbrkrule\rsidroot7608263\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16650015 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid16650015 Testing with an inline image \par \par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\lang1024\langfe1024\noproof\insrsid7608263\charrsid14577418 \objattph }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid16650015 \par }\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16650015 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid16650015 \par And a file}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid16650015 \par \par }{\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16650015 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033\insrsid16650015 {{\objattph {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid16650015 }}}}\sectd \ltrsect\linex0\endnhere\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cf0\insrsid16650015\charrsid16650015 \par }}"; const string html = "<div style=\"font-size:12pt;font-family:"Times New Roman", serif;\"><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\">Testing with an inline image</p><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\"><br></p><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\"><span data-index=\"0\"></span> </p><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\"><br></p><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\">And a file</p><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\"><br></p><p style=\"text-align:left;font-family:Calibri, sans-serif;font-size:11pt;margin:0;\"><span data-index=\"1\"></span> </p></div>"; var output = Rtf.ToHtml(rtf); Assert.AreEqual(html, output); }
public async Task <IEnumerable <Recipe> > WeatherForecasts() { List <Recipe> result; using (var context = new CookingContext(Database)) { result = await context.Recipies.OrderBy(x => x.Name).ToListAsync().ConfigureAwait(false); } Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); foreach (Recipe res in result.Where(x => x.Description != null)) { res.Description = Rtf.ToHtml(res.Description); } return(result); }
public string Convert(Stream stream) { stream.Position = 0; string rtf = string.Empty; using (StreamReader sr = new StreamReader(stream)) { rtf = sr.ReadToEnd(); } // Эта строчка необходима для работы RtfPipe в Core (о чем сказано в документации) Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // С помощью либы RtfPipe создаем html var html = Rtf.ToHtml(rtf); // очищаем html от лишних тегов и атрибутов, возвращем готовую xml return(ClearHtml(html)); }
public void HelloWorld_XElement() { var rtf = @"{\rtf1\ansi\deff0 {\fonttbl {\f0 Monotype Corsiva;}} \qc\f0\fs120\i\b Hello,\line World! }"; var doc = new XDocument(); using (var writer = doc.CreateWriter()) { Rtf.ToHtml(rtf, writer); } Assert.AreEqual(@"<div style=""font-size:12pt;font-family:"Monotype Corsiva";""> <p style=""text-align:center;font-size:60pt;margin:0;""> <strong> <em>Hello,<br />World!</em> </strong> </p> </div>", doc.Root.ToString()); }
public void ImageSize() { const string rtf = @"{\rtf1\ansi\ansicpg1251\deff0\nouicompat\deflang1049{\fonttbl{\f0\fnil\fcharset0 Calibri;}} {\*\generator Riched20 10.0.14393}\viewkind4\uc1 \pard\sa200\sl240\slmult1\f0\fs22\lang9{\pict{\*\picprop}\wmetafile8\picw1323\pich265\picwgoal750\pichgoal150 010009000003f60000000000cd00000000000400000003010800050000000b0200000000050000 000c020a003200030000001e0004000000070104000400000007010400cd000000410b2000cc00 0a003200000000000a0032000000000028000000320000000a0000000100040000000000000000 000000000000000000000000000000000000000000ffffff003300ff000033ff00000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000 000000222222222222222222222222222222222222222222222222220202022222222222222222 222222222222222222222222222222222202020222222222222222222222222222222222222222 222222222222020202222222222222222222222222222222222222222222222222220202022222 222222222222222222222222222222222222222222222202020222222222222222222222222222 222222222222222222222222020202222222222222222222222222222222222222222222222222 220202022222222222222222222222222222222222222222222222222202020222222222222222 222222222222222222222222222222222222020202222222222222222222222222222222222222 22222222222232020202040000002701ffff030000000000 }\par \par \par {\pict{\*\picprop}\wmetafile8\picw1323\pich265\picwgoal750\pichgoal150 0100090000037600000000004d00000000000400000003010800050000000b0200000000050000 000c020a003200030000001e00040000000701040004000000070104004d000000410b2000cc00 0a003200000000000a0032000000000028000000320000000a0000000100010000000000000000 000000000000000000000000000000000000000000ffffff00ffffffffffffc001ffffffffffff c001ffffffffffffc001ffffffffffffc001ffffffffffffc001ffffffffffffc001ffffffffff ffc001ffffffffffffc001ffffffffffffc001ffffffffffffc001040000002701ffff03000000 0000 }\par \pard\sa200\sl276\slmult1\par }"; var html = Rtf.ToHtml(rtf); const string expected = "<div style=\"font-size:12pt;font-family:Calibri;\"><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><img width=\"50\" height=\"10\" src=\"data:windows/metafile;base64,AQAJAAAD9gAAAAAAzQAAAAAABAAAAAMBCAAFAAAACwIAAAAABQAAAAwCCgAyAAMAAAAeAAQAAAAHAQQABAAAAAcBBADNAAAAQQsgAMwACgAyAAAAAAAKADIAAAAAACgAAAAyAAAACgAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////ADMA/wAAM/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgICAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiICAgIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAgICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgICAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiICAgIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAgICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgICAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiICAgIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAgICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMgICAgQAAAAnAf//AwAAAAAA\"></p><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><br></p><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><br></p><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><img width=\"50\" height=\"10\" src=\"data:windows/metafile;base64,AQAJAAADdgAAAAAATQAAAAAABAAAAAMBCAAFAAAACwIAAAAABQAAAAwCCgAyAAMAAAAeAAQAAAAHAQQABAAAAAcBBABNAAAAQQsgAMwACgAyAAAAAAAKADIAAAAAACgAAAAyAAAACgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///////8AB////////wAH////////AAf///////8AB////////wAH////////AAf///////8AB////////wAH////////AAf///////8ABBAAAACcB//8DAAAAAAA=\"></p><p style=\"font-size:11pt;line-height:1.4;margin:0 0 13.3px 0;\"><br></p></div>"; Assert.AreEqual(expected, html); }
public void ImageSize() { const string rtf = @"{\rtf1\ansi\ansicpg1251\deff0\nouicompat\deflang1049{\fonttbl{\f0\fnil\fcharset0 Calibri;}} {\*\generator Riched20 10.0.14393}\viewkind4\uc1 \pard\sa200\sl240\slmult1\f0\fs22\lang9{\pict{\*\picprop}\wmetafile8\picw1323\pich265\picwgoal750\pichgoal150 010009000003f60000000000cd00000000000400000003010800050000000b0200000000050000 000c020a003200030000001e0004000000070104000400000007010400cd000000410b2000cc00 0a003200000000000a0032000000000028000000320000000a0000000100040000000000000000 000000000000000000000000000000000000000000ffffff003300ff000033ff00000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000 000000222222222222222222222222222222222222222222222222220202022222222222222222 222222222222222222222222222222222202020222222222222222222222222222222222222222 222222222222020202222222222222222222222222222222222222222222222222220202022222 222222222222222222222222222222222222222222222202020222222222222222222222222222 222222222222222222222222020202222222222222222222222222222222222222222222222222 220202022222222222222222222222222222222222222222222222222202020222222222222222 222222222222222222222222222222222222020202222222222222222222222222222222222222 22222222222232020202040000002701ffff030000000000 }\par \par \par {\pict{\*\picprop}\wmetafile8\picw1323\pich265\picwgoal750\pichgoal150 0100090000037600000000004d00000000000400000003010800050000000b0200000000050000 000c020a003200030000001e00040000000701040004000000070104004d000000410b2000cc00 0a003200000000000a0032000000000028000000320000000a0000000100010000000000000000 000000000000000000000000000000000000000000ffffff00ffffffffffffc001ffffffffffff c001ffffffffffffc001ffffffffffffc001ffffffffffffc001ffffffffffffc001ffffffffff ffc001ffffffffffffc001ffffffffffffc001ffffffffffffc001040000002701ffff03000000 0000 }\par \pard\sa200\sl276\slmult1\par }"; var html = Rtf.ToHtml(rtf); const string expected = "<div style=\"font-size:12pt;font-family:Calibri;\"><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><img width=\"50\" height=\"10\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAANgCAYAAADqIqOWAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAB4JSURBVHhe7dmxDcMAEAMx7+T9Z3MWUP0BDizYq9Y93/N+AAAAAACQ9j7/sbYcEQAAAAAAAOhb5/yFteWIAAAAAAAAQN865y+sLUcEAAAAAAAA+tY5f2FtOSIAAAAAAADQt875C2vLEQEAAAAAAIC+dc5fWFuOCAAAAAAAAPStc/7C2nJEAAAAAAAAoG+d8xfWliMCAAAAAAAAfeucv7C2HBEAAAAAAADoW+f8hbXliAAAAAAAAEDfOucvrC1HBAAAAAAAAPrWOX9hbTkiAAAAAAAA0LfO+QtryxEBAAAAAACAvnXOX1hbjggAAAAAAAD0rXP+wtpyRAAAAAAAAKBvnfMX1pYjAgAAAAAAAH3rnL+wthwRAAAAAAAA6Fvn/IW15YgAAAAAAABA3zrnL6wtRwQAAAAAAAD61jl/YW05IgAAAAAAANC3zvkLa8sRAQAAAAAAgL51zl9YW44IAAAAAAAA9K1z/sLackQAAAAAAACgb53zF9aWIwIAAAAAAAB965y/sLYcEQAAAAAAAOhb5/yFteWIAAAAAAAAQN865y+sLUcEAAAAAAAA+tY5f2FtOSIAAAAAAADQt875C2vLEQEAAAAAAIC+dc5fWFuOCAAAAAAAAPStc/7C2nJEAAAAAAAAoG+d8xfWliMCAAAAAAAAfeucv7C2HBEAAAAAAADoW+f8hbXliAAAAAAAAEDfOucvrC1HBAAAAAAAAPrWOX9hbTkiAAAAAAAA0LfO+QtryxEBAAAAAACAvnXOX1hbjggAAAAAAAD0rXP+wtpyRAAAAAAAAKBvnfMX1pYjAgAAAAAAAH3rnL+wthwRAAAAAAAA6Fvn/IW15YgAAAAAAABA3zrnL6wtRwQAAAAAAAD61jl/YW05IgAAAAAAANC3zvkLa8sRAQAAAAAAgL51zl9YW44IAAAAAAAA9K1z/sLackQAAAAAAACgb53zF9aWIwIAAAAAAAB965y/sLYcEQAAAAAAAOhb5/yFteWIAAAAAAAAQN865y+sLUcEAAAAAAAA+tY5f2FtOSIAAAAAAADQt875C2vLEQEAAAAAAIC+dc5fWFuOCAAAAAAAAPStc/7C2nJEAAAAAAAAoG+d8xfWliMCAAAAAAAAfeucv7C2HBEAAAAAAADoW+f8hbXliAAAAAAAAEDfOucvrC1HBAAAAAAAAPrWOX9hbTkiAAAAAAAA0LfO+QtryxEBAAAAAACAvnXOX1hbjggAAAAAAAD0rXP+wtpyRAAAAAAAAKBvnfMX1pYjAgAAAAAAAH3rnL+wthwRAAAAAAAA6Fvn/IW15YgAAAAAAABA3zrnL6wtRwQAAAAAAAD61jl/YW05IgAAAAAAANC3zvkLa8sRAQAAAAAAgL51zl9YW44IAAAAAAAA9K1z/sLackQAAAAAAACgb53zF9aWIwIAAAAAAAB965y/sLYcEQAAAAAAAOhb5/yFteWIAAAAAAAAQN865y+sLUcEAAAAAAAA+tY5f2FtOSIAAAAAAADQt875C2vLEQEAAAAAAIC+dc5fWFuOCAAAAAAAAPStc/7C2nJEAAAAAAAAoG+d8xfWliMCAAAAAAAAfeucv7C2HBEAAAAAAADoW+f8hbXliAAAAAAAAEDfOucvrC1HBAAAAAAAAPrWOX9hbTkiAAAAAAAA0LfO+QtryxEBAAAAAACAvnXOX1hbjggAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAECQAAAAAAAAAEECAAAAAAAABAkAAAAAAAAQJAAAAAAAAEDO+/0A5rvZv2b4XqYAAAAASUVORK5CYII=\"></p><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><br></p><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><br></p><p style=\"font-size:11pt;margin:0 0 13.3px 0;\"><img width=\"50\" height=\"10\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAANgCAYAAADqIqOWAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABuDSURBVHhe7dkBDQAADMOg+ze9+2jABjcAAAAAACBHAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACBIAAAAAAAAQJAAAAAAAACAIAEAAAAAAABBAgAAAAAAAIIEAAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIEgAAAAAAABAkAAAAAAAAIAgAQAAAAAAAEECAAAAAAAAggQAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgSAAAAAAAAECQAAAAAAAAgCABAAAAAAAAQQIAAAAAAACCBAAAAAAAAAQJAAAAAAAACBIAAAAAAACQsz3zBLp+KmrZ5AAAAABJRU5ErkJggg==\"></p><p style=\"font-size:11pt;line-height:1.4;margin:0 0 13.3px 0;\"><br></p></div>"; Assert.AreEqual(expected, html); }
public async Task <Recipe?> WeatherForecasts(Guid id) { Recipe?result; using (var context = new CookingContext(Database)) { result = await context.Recipies.Include(x => x.Ingredients) .ThenInclude(x => x.Ingredient) .Include(x => x.Ingredients) .ThenInclude(x => x.MeasureUnit) .Where(x => x.ID == id) .FirstOrDefaultAsync() .ConfigureAwait(false); } if (result != null) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); result.Description = Rtf.ToHtml(result.Description); } return(result); }
protected void Page_Load(object sender, EventArgs e) { //// Global gb = Session["gb"] as Global;; paramst pp = gb.pp; Label1.Text = Session["Lexserise"] as String; exeriseid = Session["Lexserise"] as String; st = Session["user"] as StudInfo; /////////////////////////////////////////////////////////// List <extime> ltemp = Session["ltemp"] as List <extime>; DateTime dtnow = DateTime.Now; // DateTime stime = new DateTime(); // DateTime etime = new DateTime(); //"{ eid = 3164, ename = 20-21绪论, stime = 2020/10/12 0:00:00, etime = 2020/11/6 0:00:00 } bool benable = true; foreach (extime o in ltemp) { int lexid = o.eid; if (lexid == int.Parse(exeriseid)) { DateTime stime = (DateTime)o.stime; DateTime etime = (DateTime)o.etime; if (dtnow < stime || dtnow > etime) { benable = false; } } } if (!benable) { Button1.Enabled = false; } //////////////////////////////////// var questionQuery1 = from o in pp.context.exerDetail where o.lid == int.Parse(exeriseid) && o.typeq == 1 orderby o.id select o; List <exerDetail> ell = questionQuery1.ToList <exerDetail>(); int numm = 0; foreach (exerDetail eld in ell) { var questionQuery2 = from o in pp.context.TFQues where o.id == eld.qid select o; TFQues mcq = questionQuery2.First <TFQues>(); System.IO.MemoryStream mstream = new System.IO.MemoryStream(mcq.question, false); StreamReader rt = new StreamReader(mstream); RtfSource rs = new RtfSource(rt); int no = numm + 1; var html2 = Rtf.ToHtml(rs); // viewDiv.InnerHtml = no+"."+html2; HtmlGenericControl Div2 = new HtmlGenericControl(); Div2.ID = "div" + numm; HtmlGenericControl Div3 = new HtmlGenericControl(); Div3.ID = "div" + (numm + 1000); RadioButtonList rbl = new RadioButtonList(); rbl.ID = "rbl" + numm; rbl.Items.Add("True"); rbl.Items.Add("False"); lrb.Add(rbl); if (numm % 2 == 0) { Div2.Style.Add("lcs", "OVERFLOW: auto; WIDTH: 400px; HEIGHT: 400px;color:blue;font-size:16px"); } else { Div2.Style.Add("lcs", "OVERFLOW: auto; WIDTH: 400px; HEIGHT: 400px;color: balck;font-size:16px"); } rbl.RepeatDirection = RepeatDirection.Horizontal; ///读取答案 var questionQuery3 = from o in pp.context.studAnsw where o.did == eld.id && o.lid == eld.lid && o.stid == st.studentid select o; if (questionQuery3.Count <studAnsw>() > 0) { if (questionQuery3.First <studAnsw>().answ2 != null) { string cs = ""; bool ics = (bool)questionQuery3.First <studAnsw>().answ2; if (!ics) { cs = "False"; } if (ics) { cs = "True"; } rbl.SelectedValue = cs; } } //// Div3.Controls.Add(rbl); Div2.InnerHtml = no + "." + html2; numm = numm + 1; // rrtf.Add(richTextBox1.Rtf); viewDiv.Controls.Add(Div2); viewDiv.Controls.Add(Div3); //查询答案 /*var q2 = from q in pp.context.studAnsw * where q.lid == eld.lid && q.stid == pp.st.studentid && q.did == eld.id * select q; * studAnsw answ1 = null; #00FFFF * if (q2.Count<studAnsw>() > 0) { answ1 = q2.First<studAnsw>(); Lmqansw.Add(answ1); } * ell = questionQuery1.ToList<exerDetail>(); */ } //// }
private async Task <List <StockMovementViewModel> > GetData(ScrollViewModel Scroll) { #region Query var QueryData = (from ProductMaster in this.sageContext.Itmmaster //join StockJou in this.sageContext.Stojou on ProductMaster.Itmref0 equals StockJou.Itmref0 into StockJou2 //from nStockJou in StockJou2.DefaultIfEmpty() join ProductCate in this.sageContext.Itmcateg on ProductMaster.Tclcod0 equals ProductCate.Tclcod0 into ProductCate2 from nProductCate in ProductCate2.DefaultIfEmpty() join aText in this.sageContext.Atextra on new { code1 = nProductCate.Tclcod0, code2 = "TCLAXX" } equals new { code1 = aText.Ident10, code2 = aText.Zone0 } into AText from nAText in AText.DefaultIfEmpty() join bText in this.sageContext.Texclob on new { Code0 = ProductMaster.Purtex0 } equals new { bText.Code0 } into bText2 from fullText in bText2.DefaultIfEmpty() select new { // nStockJou, ProductMaster, nProductCate, nAText, fullText, }).Where(x => this.sageContext.Stojou.Any(z => z.Itmref0 == x.ProductMaster.Itmref0)).AsQueryable(); // .Where(x => x.nStockJou != null) #endregion Query #region Filter // Filter var filters = string.IsNullOrEmpty(Scroll.Filter) ? new string[] { "" } : Scroll.Filter.Split(null); foreach (string temp in filters) { string keyword = temp.ToLower(); QueryData = QueryData.Where(x => x.nAText.Texte0.ToLower().Contains(keyword) || x.ProductMaster.Itmdes10.ToLower().Contains(keyword) || x.ProductMaster.Itmdes20.ToLower().Contains(keyword) || x.ProductMaster.Itmdes30.ToLower().Contains(keyword) || x.ProductMaster.Itmref0.ToLower().Contains(keyword)); } // Product Category if (Scroll.WhereBanks.Any()) { QueryData = QueryData.Where(x => Scroll.WhereBanks.Contains(x.ProductMaster.Tclcod0)); } #endregion Filter #region Scroll switch (Scroll.SortField) { case "ItemCode": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.ProductMaster.Itmref0); } else { QueryData = QueryData.OrderBy(x => x.ProductMaster.Itmref0); } break; case "ItemDescFull": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.ProductMaster.Itmdes10); } else { QueryData = QueryData.OrderBy(x => x.ProductMaster.Itmdes10); } break; case "Uom": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.ProductMaster.Stu0); } else { QueryData = QueryData.OrderBy(x => x.ProductMaster.Stu0); } break; case "Category": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nProductCate.Tclcod0); } else { QueryData = QueryData.OrderBy(x => x.nProductCate.Tclcod0); } break; case "CategoryDesc": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nAText.Texte0); } else { QueryData = QueryData.OrderBy(x => x.nAText.Texte0); } break; default: QueryData = QueryData.OrderBy(x => x.ProductMaster.Itmref0); break; } #endregion Scroll Scroll.TotalRow = await QueryData.CountAsync(); var Message = ""; try { var Datasource = await QueryData.Skip(Scroll.Skip ?? 0).Take(Scroll.Take ?? 15).AsNoTracking().ToListAsync(); var MapDatas = new List <StockMovementViewModel>(); var Purchase = new List <int>() { 6, 8 }; var Stock = new List <int>() { 19, 20, 31, 32 }; var Sale = new List <int>() { 5, 13 }; foreach (var item in Datasource) { var MapData = new StockMovementViewModel() { Category = item?.nProductCate?.Tclcod0 ?? "", CategoryDesc = item?.nAText?.Texte0 ?? "", ItemCode = item?.ProductMaster?.Itmref0, ItemDesc = item?.ProductMaster?.Itmdes10, Uom = string.IsNullOrEmpty(item?.ProductMaster?.Pcu0.Trim()) ? item?.ProductMaster?.Stu0 : item?.ProductMaster?.Pcu0, }; //ItemName if (item?.fullText?.Texte0 != null) { if (item.fullText.Texte0.StartsWith("{\\rtf1")) { MapData.ItemDescFull = Rtf.ToHtml(item?.fullText?.Texte0); } else { MapData.ItemDescFull = item?.fullText?.Texte0; } } else { MapData.ItemDescFull = item?.fullText?.Texte0 ?? "-"; } var StockJoc = await this.repository.GetToListAsync(x => x, x => x.Itmref0 == MapData.ItemCode && x.Regflg0 == 1); foreach (var item2 in StockJoc.GroupBy(x => new { x.Vcrnum0, x.Vcrtyp0, x.Iptdat0, x.Loc0, })) { MapData.StockMovement2s.Add(new StockMovement2ViewModel { Bom = item2?.FirstOrDefault()?.Cce1 ?? "", DocNo = item2?.Key?.Vcrnum0 ?? "", Location = item2?.FirstOrDefault()?.Loc0 ?? "", MovementDate = item2?.Key?.Iptdat0, MovementType = Purchase.Contains(item2.Key.Vcrtyp0) ? "Purchase" : (Stock.Contains(item2.Key.Vcrtyp0) ? "Stock" : (Sale.Contains(item2.Key.Vcrtyp0) ? "Sale" : "Stock")), Project = item2?.FirstOrDefault()?.Cce2 ?? "", WorkGroup = item2?.FirstOrDefault()?.Cce3 ?? "", QuantityIn = (double)item2?.Where(x => x.Qtypcu0 > 0)?.Sum(x => x?.Qtypcu0 ?? (decimal)0), QuantityOut = (double)item2?.Where(x => x.Qtypcu0 <= 0)?.Sum(x => x?.Qtypcu0 ?? (decimal)0), }); } MapDatas.Add(MapData); } return(MapDatas); } catch (Exception ex) { Message = $"{ex.ToString()}"; } return(null); }
public frmWCCLicense() { InitializeComponent(); browserwcclicense.DocumentText = Rtf.ToHtml(new RtfSource(new MemoryStream(Encoding.UTF8.GetBytes(Resources.wcc_eula)))); }
protected void Page_Load(object sender, EventArgs e) { //// Global gb = Session["gb"] as Global;;; pp = gb.pp; Label1.Text = Session["Lexserise"] as String; exeriseid = Session["Lexserise"] as String; st = Session["user"] as StudInfo; var questionQuery1 = from o in pp.context.exerDetail where o.lid == int.Parse(exeriseid) && o.typeq == 3 orderby o.id select o; ell = questionQuery1.ToList <exerDetail>(); int numm = 0; /////////////////////////////////////////////////////////// List <extime> ltemp = Session["ltemp"] as List <extime>; DateTime dtnow = DateTime.Now; // DateTime stime = new DateTime(); // DateTime etime = new DateTime(); //"{ eid = 3164, ename = 20-21绪论, stime = 2020/10/12 0:00:00, etime = 2020/11/6 0:00:00 } bool benable = true; foreach (extime o in ltemp) { int lexid = o.eid; if (lexid == int.Parse(exeriseid)) { DateTime stime = (DateTime)o.stime; DateTime etime = (DateTime)o.etime; if (dtnow < stime || dtnow > etime) { benable = false; } } } // if (!benable) Button1.Enabled = false; //////////////////////////////////// foreach (exerDetail eld in ell) { var questionQuery2 = from o in pp.context.SQues where o.id == eld.qid select o; SQues mcq = questionQuery2.First <SQues>(); System.IO.MemoryStream mstream = new System.IO.MemoryStream(mcq.question, false); StreamReader rt = new StreamReader(mstream); RtfSource rs = new RtfSource(rt); int no = numm + 1; var html2 = Rtf.ToHtml(rs); // viewDiv.InnerHtml = no+"."+html2; HtmlGenericControl Div2 = new HtmlGenericControl(); Div2.ID = "div" + numm; HtmlGenericControl Div3 = new HtmlGenericControl(); Div3.ID = "div" + (numm + 1000); HtmlGenericControl Div4 = new HtmlGenericControl(); Div4.ID = "pdiv" + numm; Button rbl = new Button(); if (!benable) { rbl.Enabled = false; } rbl.Click += new System.EventHandler(this.but_Click); rbl.CommandArgument = numm.ToString(); HtmlInputFile fbutton = new HtmlInputFile(); fbutton.Accept = "image/*"; fbutton.ID = numm.ToString(); lfb.Add(fbutton); // CommandArgument = "Descending" // OnCommand = "CommandBtn_Click" rbl.Text = "上传图片"; rbl.ID = "rbl" + numm; Image Image1 = new Image(); HtmlGenericControl Div5 = new HtmlGenericControl(); Div5.InnerHtml = "</br>" + "</br>"; if (numm % 2 == 0) { Div2.Style.Add("lcs", "OVERFLOW: auto; WIDTH: 400px; HEIGHT: 400px;color:blue;font-size:16px"); } else { Div2.Style.Add("lcs", "OVERFLOW: auto; WIDTH: 400px; HEIGHT: 400px;color: balck;font-size:16px"); } ///读取答案 var questionQuery3 = from o in pp.context.studAnsw where o.did == eld.id && o.lid == eld.lid && o.stid == st.studentid select o; if (questionQuery3.Count <studAnsw>() > 0) { if (questionQuery3.First <studAnsw>().answ3 != null) { // bool ics = (bool)questionQuery3.First<studAnsw>().answ2; // // Image himg = new Image(); // byte[] bytes = questionQuery3.First<studAnsw>().answ3; // Response.BinaryWrite(bytes); // MemoryStream ms = new MemoryStream(bytes); // himg = Image.FromStream(ms, true); // byte[] bytes = questionQuery3.First <studAnsw>().answ3; MemoryStream MStream = new MemoryStream(bytes); string base64 = Convert.ToBase64String(MStream.ToArray()); Image1.ImageUrl = "data:image/png;base64," + base64; Image1.ImageAlign = ImageAlign.Middle; // Image1.Width = 600; Image1.Width = Unit.Percentage(70); Div4.Controls.Add(Image1); } } //// Div3.Controls.Add(fbutton); Div3.Controls.Add(rbl); Div2.InnerHtml = "</br>" + no + "." + html2 + "</br>"; numm = numm + 1; // rrtf.Add(richTextBox1.Rtf); viewDiv.Controls.Add(Div2); viewDiv.Controls.Add(Div4); viewDiv.Controls.Add(Div5); viewDiv.Controls.Add(Div3); //查询答案 /*var q2 = from q in pp.context.studAnsw * where q.lid == eld.lid && q.stid == pp.st.studentid && q.did == eld.id * select q; * studAnsw answ1 = null; #00FFFF * if (q2.Count<studAnsw>() > 0) { answ1 = q2.First<studAnsw>(); Lmqansw.Add(answ1); } * ell = questionQuery1.ToList<exerDetail>(); */ } //// }
private async Task <List <StockMovementViewModel> > GetData2(ScrollViewModel scroll) { if (scroll != null) { string sWhere = ""; string sSort = ""; string sQuery = ""; #region Where var filters = string.IsNullOrEmpty(scroll.Filter) ? new string[] { "" } : scroll.Filter.Split(null); foreach (string temp in filters) { if (string.IsNullOrEmpty(temp)) { continue; } string keyword = temp.ToLower(); sWhere += (string.IsNullOrEmpty(sWhere) ? "WHERE " : " AND ") + $@"(LOWER(ITM.ITMREF_0) LIKE '%{keyword}%' OR LOWER(ITM.ITMDES1_0) LIKE '%{keyword}%' OR LOWER(ITM.ITMDES2_0) LIKE '%{keyword}%' OR LOWER(ITM.ITMDES3_0) LIKE '%{keyword}%'' OR LOWER(ATE.TEXTE_0) LIKE '%{keyword}%')"; } // Product Category if (scroll.WhereBanks.Any()) { var list = new List <string>(); foreach (var item in scroll.WhereBanks) { list.Add($"'{item}'"); } var banks = string.Join(',', list); sWhere += (string.IsNullOrEmpty(sWhere) ? "WHERE " : " AND ") + $"ITM.TCLCOD_0 IN ({banks})"; // predicate = predicate.And(x => Scroll.WhereBanks.Contains(x.Ban0)); } #endregion Where #region Sort switch (scroll.SortField) { case "ItemCode": if (scroll.SortOrder == -1) { sSort = $"ITM.ITMREF_0 DESC"; //QueryData = QueryData.OrderByDescending(x => x.PAYM.Pshnum0); } else { sSort = $"ITM.ITMREF_0 ASC"; //QueryData = QueryData.OrderBy(x => x.PAYM.Pshnum0); } break; case "ItemDescFull": if (scroll.SortOrder == -1) { sSort = $"ITM.ITMDES1_0 DESC"; //QueryData = QueryData.OrderByDescending(x => x.PAYM.Pjth0); } else { sSort = $"ITM.ITMDES1_0 ASC"; //QueryData = QueryData.OrderBy(x => x.PAYM.Pjth0); } break; case "Uom": if (scroll.SortOrder == -1) { sSort = $"ITM.STU_0 DESC"; //QueryData = QueryData.OrderByDescending(x => x.PAYM.Prqdat0); } else { sSort = $"ITM.STU_0 ASC"; //QueryData = QueryData.OrderBy(x => x.PAYM.Prqdat0); } break; case "Category": if (scroll.SortOrder == -1) { sSort = $"ITM.TCLCOD_0 DESC"; //QueryData = QueryData.OrderByDescending(x => x.prd.Itmdes0); } else { sSort = $"ITM.TCLCOD_0 ASC"; //QueryData = QueryData.OrderBy(x => x.prd.Itmdes0); } break; case "CategoryDesc": if (scroll.SortOrder == -1) { sSort = $"ATE.TEXTE_0 DESC"; //QueryData = QueryData.OrderByDescending(x => x.PAYM.Cce0); } else { sSort = $"ATE.TEXTE_0 ASC"; //QueryData = QueryData.OrderBy(x => x.PAYM.Cce0); } break; default: sSort = $"ITM.ITMREF_0 DESC"; //QueryData = QueryData.OrderByDescending(x => x.PAYM.Prqdat0); break; } #endregion Sort #region Query // Query mulitple command sQuery = $@"SELECT ITM.ITMREF_0 AS [ItemCode], ITM.ITMDES1_0 AS [ItemDesc], TXT.TEXTE_0 AS [ItemDescFull], CAT.TCLCOD_0 AS [Category], ATE.TEXTE_0 AS [CategoryDesc], ISNULL(NULLIF(ITM.PCU_0,''),ITM.STU_0) AS [Uom] FROM VIPCO.ITMMASTER ITM LEFT JOIN VIPCO.TEXCLOB TXT ON TXT.CODE_0 = ITM.PURTEX_0 LEFT JOIN VIPCO.ITMCATEG CAT ON ITM.TCLCOD_0 = CAT.TCLCOD_0 LEFT JOIN VIPCO.ATEXTRA ATE ON CAT.TCLCOD_0 = ATE.IDENT1_0 AND ATE.ZONE_0 = 'TCLAXX' {sWhere} ORDER BY {sSort} OFFSET @Skip ROWS -- skip 10 rows FETCH NEXT @Take ROWS ONLY; -- take 10 rows; SELECT COUNT(*) FROM VIPCO.ITMMASTER ITM LEFT JOIN VIPCO.TEXCLOB TXT ON TXT.CODE_0 = ITM.PURTEX_0 LEFT JOIN VIPCO.ITMCATEG CAT ON ITM.TCLCOD_0 = CAT.TCLCOD_0 LEFT JOIN VIPCO.ATEXTRA ATE ON CAT.TCLCOD_0 = ATE.IDENT1_0 AND ATE.ZONE_0 = 'TCLAXX' {sWhere};"; #endregion Query var result = await this.repositoryStock.GetListEntitesAndTotalRow(sQuery, new { Skip = scroll.Skip ?? 0, Take = scroll.Take ?? 15 }); var dbData = result.Entities; scroll.TotalRow = result.TotalRow; string stockJournal = ""; foreach (var item in dbData) { if (item.ItemDescFull.StartsWith("{\\rtf1")) { item.ItemDescFull = Rtf.ToHtml(item?.ItemDescFull); } else { item.ItemDescFull = item?.ItemDesc; } #region stockJournal stockJournal = $@"SELECT STO.VCRNUM_0 AS DocNo, STO.VCRTYP_0 AS MovementType, STO.IPTDAT_0 AS MovementDate, (CASE WHEN SUM(STO.QTYPCU_0) > 0 THEN SUM(STO.QTYPCU_0) END) AS QuantityIn, (CASE WHEN SUM(STO.QTYPCU_0) <= 0 THEN SUM(STO.QTYPCU_0) END) AS QuantityOut, STO.LOC_0 AS [Location], STO.CCE_1 AS Bom, STO.CCE_2 AS Project, STO.CCE_3 AS WorkGroup FROM VIPCO.STOJOU STO WHERE STO.ITMREF_0 = @ItemCode AND STO.REGFLG_0 = 1 GROUP BY STO.VCRNUM_0, STO.VCRTYP_0, STO.IPTDAT_0, STO.LOC_0, STO.CCE_1, STO.CCE_2, STO.CCE_3 ORDER BY STO.IPTDAT_0"; var stockMoves = await this.repositoryStock2.GetListEntites(stockJournal, new { item.ItemCode }); item.StockMovement2s.AddRange(stockMoves); #endregion stockJournal } return(dbData); } return(null); }
private void TestConvert(string rtf, string html) { var actual = Rtf.ToHtml(rtf); Assert.AreEqual(html, actual); }
public void EncapsulatedHtml() { // FROM: https://msdn.microsoft.com/en-us/library/ee204432(v=exchg.80).aspx var rtf = @"{\rtf1\ANSI\ansicpg1251\fromhtml1 \deff0 {\fonttbl {\f0\fmodern Courier New;}{\f1\fswiss Arial;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl\red0\green0\blue0;\red0\green0\blue255;} {\*\htmltag64} \uc1\pard\plain\deftab360 \f0\fs24 {\*\htmltag <HTML><head>\par <style>\par <!--\par /* Style Definitions */\par p.MsoNormal, li.MsoNormal \{font-family:Arial;\}\par -->\par </style>\par \tab <!-- This is a HTML comment.\par There is a horizontal tab (%x09) character before the comment, \par and some new lines inside the comment. -->\par </head>\par <body>\par <p\par class=""MsoNormal"">} {\htmlrtf \f1 \htmlrtf0 Note the line break inside a P tag. {\*\htmltag <b>}{\htmlrtf \b \htmlrtf0 This is a bold text{\*\htmltag </b>}} \htmlrtf\par\htmlrtf0} \htmlrtf \par \htmlrtf0 {\*\htmltag </p>\par <p class=""MsoNormal"">\par} {\htmlrtf \f1 \htmlrtf0 This is a normal text with a character references: {\*\htmltag }\htmlrtf \'a0\htmlrtf0 {\*\htmltag <}\htmlrtf <\htmlrtf0 {\*\htmltag ¨}\htmlrtf {\f2\'a8}\htmlrtf0{\*\htmltag <br>\par}\htmlrtf\line\htmlrtf0 characters which have special meaning in RTF: \{\}\\{\*\htmltag <br>\par}\htmlrtf\line\htmlrtf0\htmlrtf\par\htmlrtf0} {\*\htmltag </p>\par <ol>\par <li class=""MsoNormal"">}{\htmlrtf {{\*\pn\pnlvlbody\pndec\pnstart1\pnindent360{\pntxta.}}\li360\fi-360{\pntext 1.\tab} \f1 \htmlrtf0 This is a list item}\htmlrtf\par\htmlrtf0} {\*\htmltag \par </ol>\par </body>\par </HTML>\par }}"; var html = Rtf.ToHtml(rtf); var expected = @" <HTML><head> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal {font-family:Arial;} --> </style> <!-- This is a HTML comment. There is a horizontal tab (%x09) character before the comment, and some new lines inside the comment. --> </head> <body> <p class=""MsoNormal"">Note the line break inside a P tag. <b>This is a bold text</b> </p> <p class=""MsoNormal""> This is a normal text with a character references: < ¨<br> characters which have special meaning in RTF: {}\<br> </p> <ol> <li class=""MsoNormal"">This is a list item </ol> </body> </HTML> "; Assert.AreEqual(expected, html); }
//[TestMethod] public void Adhoc() { using (var stream = File.OpenRead(@"C:\Users\erdomke\source\GitHub\Message.rtf")) File.WriteAllText(@"C:\Users\erdomke\source\GitHub\Message.html", Rtf.ToHtml(stream)); }
private async Task <List <StockOnHandViewModel> > GetData(ScrollViewModel Scroll) { #region Query var QueryData = (from ProductsSites in this.sageContext.Itmfacilit join ProductTotal in this.sageContext.Itmmvt on ProductsSites.Itmref0 equals ProductTotal.Itmref0 into ProductStock from nProductStock in ProductStock.DefaultIfEmpty() join ProductMaster in this.sageContext.Itmmaster on ProductsSites.Itmref0 equals ProductMaster.Itmref0 into ProductMaster2 from nProductMaster in ProductMaster2.DefaultIfEmpty() join ProductCate in this.sageContext.Itmcateg on nProductMaster.Tclcod0 equals ProductCate.Tclcod0 into ProductCate2 from nProductCate in ProductCate2.DefaultIfEmpty() join aText in this.sageContext.Atextra on new { code1 = nProductCate.Tclcod0, code2 = "TCLAXX" } equals new { code1 = aText.Ident10, code2 = aText.Zone0 } into AText from nAText in AText.DefaultIfEmpty() join bText in this.sageContext.Texclob on new { Code0 = nProductMaster.Purtex0 } equals new { bText.Code0 } into bText2 from fullText in bText2.DefaultIfEmpty() select new { ProductsSites, nProductStock, nProductMaster, nProductCate, nAText, fullText, }).AsQueryable(); #endregion Query #region Filter // Filter var filters = string.IsNullOrEmpty(Scroll.Filter) ? new string[] { "" } : Scroll.Filter.Split(null); foreach (string temp in filters) { string keyword = temp.ToLower(); QueryData = QueryData.Where(x => x.nAText.Texte0.ToLower().Contains(keyword) || x.nProductMaster.Itmdes10.ToLower().Contains(keyword) || x.nProductMaster.Itmdes20.ToLower().Contains(keyword) || x.nProductMaster.Itmdes30.ToLower().Contains(keyword) || x.ProductsSites.Itmref0.ToLower().Contains(keyword)); } // Product Category if (Scroll.WhereBanks.Any()) { QueryData = QueryData.Where(x => Scroll.WhereBanks.Contains(x.nProductMaster.Tclcod0)); } QueryData = QueryData.Where(x => x.nProductStock.Physto0 > 0 || x.ProductsSites.Ofs0 > 0); #endregion Filter #region Scroll switch (Scroll.SortField) { case "ItemCode": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nProductMaster.Itmref0); } else { QueryData = QueryData.OrderBy(x => x.nProductMaster.Itmref0); } break; case "ItemDescFull": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nProductMaster.Itmdes10); } else { QueryData = QueryData.OrderBy(x => x.nProductMaster.Itmdes10); } break; case "Uom": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nProductMaster.Stu0); } else { QueryData = QueryData.OrderBy(x => x.nProductMaster.Stu0); } break; case "Category": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nProductCate.Tclcod0); } else { QueryData = QueryData.OrderBy(x => x.nProductCate.Tclcod0); } break; case "CategoryDesc": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nAText.Texte0); } else { QueryData = QueryData.OrderBy(x => x.nAText.Texte0); } break; case "InternelStockString": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.nProductStock.Physto0); } else { QueryData = QueryData.OrderBy(x => x.nProductStock.Physto0); } break; case "OnOrderString": if (Scroll.SortOrder == -1) { QueryData = QueryData.OrderByDescending(x => x.ProductsSites.Ofs0); } else { QueryData = QueryData.OrderBy(x => x.ProductsSites.Ofs0); } break; default: QueryData = QueryData.OrderByDescending(x => x.nProductMaster.Itmref0); break; } #endregion Scroll Scroll.TotalRow = await QueryData.CountAsync(); var Message = ""; try { var Datasource = await QueryData.Skip(Scroll.Skip ?? 0).Take(Scroll.Take != -1 ? (Scroll.Take ?? 15) : (Scroll.TotalRow ?? 15)).AsNoTracking().ToListAsync(); var MapDatas = new List <StockOnHandViewModel>(); foreach (var item in Datasource) { var MapData = new StockOnHandViewModel() { Category = item?.nProductCate?.Tclcod0, CategoryDesc = item?.nAText?.Texte0, InternelStock = (double)(item?.nProductStock?.Physto0 ?? 0), ItemCode = item?.nProductMaster?.Itmref0, ItemDesc = item?.nProductMaster?.Itmdes10, OnOrder = (double)(item?.nProductStock?.Ordsto0 ?? 0), Uom = string.IsNullOrEmpty(item?.nProductMaster?.Pcu0.Trim()) ? item?.nProductMaster?.Stu0 : item?.nProductMaster?.Pcu0, }; // Set Stock var ListStock = await this.repositoryStock.GetToListAsync(x => x, x => x.Itmref0 == MapData.ItemCode); if (ListStock != null && ListStock.Any()) { foreach (var stock in ListStock.GroupBy(x => new { x.Loc0, x.Pcu0, x.Pjt0, x.Lot0, x.Bpslot0, x.Palnum0 })) { var itemStock = new StockLocationViewModel { LocationCode = stock.Key.Loc0, Uom = stock.Key.Pcu0, Project = stock.Key.Pjt0, LotNo = stock.Key.Lot0, HeatNo = stock.Key.Bpslot0, Origin = stock.Key.Palnum0, Quantity = (double)(stock?.Sum(z => z.Qtypcu0) ?? (decimal)0), }; if (!string.IsNullOrEmpty(itemStock.LotNo)) { var stock_lot = await this.repositoryStockLot.GetFirstOrDefaultAsync (x => x, x => x.Itmref0 == MapData.ItemCode && x.Lot0 == itemStock.LotNo); if (stock_lot != null) { if (stock_lot.Shldat0.Year < 2600) { itemStock.ExpDate = stock_lot.Shldat0; } } } MapData.StockLocations.Add(itemStock); } } //ItemName if (item.fullText?.Texte0 != null) { if (item.fullText.Texte0.StartsWith("{\\rtf1")) { MapData.ItemDescFull = Rtf.ToHtml(item.fullText?.Texte0); } else { MapData.ItemDescFull = item?.fullText?.Texte0; } } else { MapData.ItemDescFull = item?.fullText?.Texte0 ?? "-"; } MapDatas.Add(MapData); } return(MapDatas); } catch (Exception ex) { Message = $"{ex.ToString()}"; } return(null); }
private void TestConvert(RtfSource rtf, string html) { var actual = Rtf.ToHtml(rtf); ParseRender.AssertEqual(html, actual); }
public frmWCCLicense() { InitializeComponent(); browserwcclicense.DocumentText = Rtf.ToHtml(new RtfSource(new StreamReader(Resources.wcc_eula))); }
public string getHTML(PDF pdf) { string htmlMassnahmen = Rtf.ToHtml(pdf.beschreibungMassnahme.Rtf); htmlMassnahmen = reduceRtfFormatting(htmlMassnahmen); string html = ""; html = $@" <div style='position: fixed; left: 150px; top: 810px; width:65% '> <p style='font-size: 8px; '>Eictronic GmbH -Sitz: 37339 Berlingerode - Amtsgericht Jena - HRB 513528 - Geschäftsführer: Jörg Boden Steuernummer: 157 / 208 / 08940 UST - ID - Nr.: DE 251137789 Finanzamt Mühlhausen</p> </div> <p style='font-size: 12px; ' > Eictronic GmbH, Gasse 25, 37339 Berlingerode </p> <table> <tr> <td valign: top> {pdf.empfaenger.AnsprechpartnerVorname} {pdf.empfaenger.AnsprechpartnerName} </td> </tr> <tr> <td valign: top> {pdf.empfaenger.Firma} </td> </tr> <tr> <td valign: top> {pdf.empfaenger.Bereich} </td> </tr> <tr> <td valign: top> {pdf.empfaenger.Straße} </td> </tr> <tr> <td valign: top> {pdf.empfaenger.PLZ} {pdf.empfaenger.Ort} </td> </tr> </table> <table style='margin-top: 30px; '> <tr> <td valign: top> Aufragsnummer: </td> <td> {pdf.auftrag.SMNummer} (bei Rückfragen bitte immer angeben) </td> </tr> <tr> <td valign: top> Ansprechpartner: </td> <td> {pdf.ansprechpartner.BearbeiterVorname} {pdf.ansprechpartner.BearbeiterName}, {pdf.ansprechpartner.Telefon}, {pdf.ansprechpartner.Email} </td> </tr> <tr> <td valign= top> Datum: </td> <td> {pdf.datum.ToString("dd.MM.yyyy")} </td> </tr> <tr> <td valign=top > Betreff: </td> <td> Zustimmung des Trägers der Wegebaulast nach §68 Telekommunikationsgesetz (TKG) </td> </tr> </table> "; //ort der Maßnahmen html += $@" <table style='width:100%; margin-top:15px'> <tr> <td style='valign: top; width:20%'> Bauvorhaben: </td> <td> {pdf.ortDerMassnahme} </td> </tr> </table> "; //anschreiben html += $@" <div id='anschreiben'> <p> Sehr geehrte Damen und Herren, </br> </br> die Telekom Deutschland GmbH beabsichtigt nach den beiliegenden Plänen ihre </br> Telekommunikationslinien zu ändern/zu erweitern.</br> Dazu hat sie uns, die Eictronic GmbH beauftragt und bevollmächtigt die Aufgaben der Planung</br> und Wegesicherung wahrzunehmen. </p> </div> <table style='width: 100%; margin-top:30px'> <tr> <td valign=top style=' width:20%'> Baubeschreibung: </td> </tr> <tr> <td valign=top> {htmlMassnahmen} </td> </tr> </table> <table style='page-break-inside: avoid'> <tr> <td> Wir bitten Sie, die Zustimmung gemäß § 68 Abs. 3 Satz 1 TKG zugunsten der Telekom Deutschland GmbH (Reg-Nr.: 93/007 nach § 6 TKG) als Nutzungsberechtigte nach § 68 Abs. 1 i. V. m. § 69 Abs. 1 TKG zu erteilen. Bitte senden Sie die Zustimmung unter Angabe der im Betreff genannten SM-Nr. an:</br></br></br> </td> </tr> <tr> <td> <b>{pdf.wesiTeam.Firma}</b> </td> </tr> <tr> <td> <b>{pdf.wesiTeam.Niederlassung}</b> </td> </tr> <tr> <td> <b>{pdf.wesiTeam.Bereich}</b> </td> </tr> <tr> <td> <b>{pdf.wesiTeam.Strasse}</b> </td> </tr> <tr> <td> <b>{pdf.wesiTeam.PLZ} {pdf.wesiTeam.Stadt}</b> </td> </tr> </table> <table style='width:100%; page-break-inside: avoid'> <tr> <td> <p> Rechtzeitig vor Baubeginn wird Ihnen der genaue Ausführungszeitraum sowie die mit den Arbeiten beauftragte Firma schriftlich mitgeteilt (Baubeginnanzeige). </p> <p> Vorraussichtllicher Ausführungszeitraum: {pdf.ausfuehrungszeitraum.ToString("MMMM yyyy")} "; if (pdf.ausfuehrungszeitraum.Month != pdf.ausfuehrungszeitraumEnde.Month || pdf.ausfuehrungszeitraum.Year != pdf.ausfuehrungszeitraumEnde.Year) { html += $@" bis {pdf.ausfuehrungszeitraumEnde.ToString("MMMM yyyy")}"; } html += $@" <p> Falls bei der Bauausführung Ihre Belange betroffen sind, bitten wir um deren Angabe und um Beifügung von Plänen der betroffenen Anlagen.</br> </p> <p style='margin-top:30px'> Für Rückfragen stehen wir Ihnen gern zur Verfügung </p> <p style='margin-top:60px'> Mit freundlichen Grüßen: </p> <p> i.A. {pdf.ansprechpartner.BearbeiterVorname} {pdf.ansprechpartner.BearbeiterName} </p> </td> </tr> </table> <p> Anlagen: </p> "; foreach (string s in pdf.Zusatzanlagen) { html += "<p>" + s + "</p>"; } return(html); }