diff --git a/Yavsc/Helpers/TeXHelpers.cs b/Yavsc/Helpers/TeXHelpers.cs index e3c77559..d0404486 100644 --- a/Yavsc/Helpers/TeXHelpers.cs +++ b/Yavsc/Helpers/TeXHelpers.cs @@ -14,7 +14,19 @@ namespace Yavsc.Helpers public class TeXString : HtmlString { - public class Replacement + public TeXString(TeXString teXString): base(teXString.ToString()) + { + } + + public TeXString(string str) : base(str) + { + + + } + + + } + public class Replacement { string target; string replacement; @@ -28,8 +40,9 @@ namespace Yavsc.Helpers return source.Replace(target, replacement); } } - - public readonly static Replacement[] SpecialCharsRendering = + public static class TeXHelpers + { + public static readonly Replacement[] SpecialCharsRendering = { new Replacement("<","\\textless"), new Replacement(">","\\textgreater"), @@ -54,26 +67,16 @@ namespace Yavsc.Helpers new Replacement("†","\\dag"), new Replacement("–","\\textendash") }; - - public TeXString(string str) : base(TR(str)) - { - - - } - private static string TR(string source) + + public static TeXString ToTeX(this string source) { string result=source; foreach (var r in SpecialCharsRendering) { result = r.Execute(result); } - return result; + return new TeXString(result); } - - } - - public static class TeXHelpers - { public static string NewLinesWith(this string target, string separator) { var items = target.Split(new char[] { '\n' }).Where( @@ -85,19 +88,14 @@ namespace Yavsc.Helpers public static TeXString ToTeX(this string target, string lineSeparator = "\n\\\\") { if (target == null) return null; - return new TeXString(target.NewLinesWith(lineSeparator)); + return new TeXString( target.ToTeX().ToString().NewLinesWith(lineSeparator) ); } - public static HtmlString SplitAddressToTeX (this string target) + public static TeXString SplitAddressToTeX (this string target) { var alines = target.Split(','); - var texlines = alines.Select(l=>new TeXString(l)); - StringBuilder sb = new StringBuilder(); - foreach (var l in texlines) - { - sb.AppendFormat("{0}\\\\\n",l.ToString()); - } - return new HtmlString(sb.ToString()); + var texlines = alines.Select(l=>l.ToTeX().ToString()); + return new TeXString(string.Join("\\\\\n",texlines)); } public static bool GenerateEstimatePdf(this PdfGenerationViewModel Model)