Hallo zusammen,
ich verwende Handlebars.Net in meiner Anwendung um ein Texttemplate zu parsen.
TEMPLATE:
Ticketnummer: {{{Number}}}
Leistungsdatum / Zeitraum: {{{StartDate}}} bis {{{EndDate}}}
{{{#if Orderer}}}Besteller: {{{Orderer}}}{{{/if}}}
{{{#if OrderType}}}Eingangsform: {{{OrderType}}}{{{/if}}}
{{{#if ContactPerson}}}Kontaktperson: {{{ContactPerson}}}{{{/if}}}
Beschreibung:
{{{Text}}}
ERGEBNIS:
Ticketnummer: TI10019
Leistungsdatum / Zeitraum: 21.10.2014 bis
Eingangsform: telefonisch
Kontaktperson: asfdasdf
Beschreibung:
cxdssdf
PROBLEM:
Wie bekomme ich es hin, dass keine Leerzeilen generiert werden?
Ich habe schon \r\n vor die if Closing Tags geschrieben dies hat jedoch auch nichts gebracht.
Vielen Dank für Eure Hilfe!
A programmer is just a tool, which converts coffeine into code! 🙂
Ich kenne das Template nicht, daher kann ich nur raten
Aber ich würde es mal so versuchen, dass Du die Zeile mit dem IF an's Ende der Vorherigen Zeile legst und in das IF ein \r\n rein schreibst
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Hallo Palladin007,
das Template habe ich oben mit abgebildet.
A programmer is just a tool, which converts coffeine into code! 🙂
Du hast doch in Deinem Template vor und nach dem If ein entsprechendes \r\n.
Das bleibt da natürlich auch, wenn das if nicht erfüllt wird; und dadurch hast Du Deine Leerzeilen.
Musst halt die NewLine Zeichen in Dein if packen; ist ja bei einer normalen Textdatei nicht anders.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
das Template habe ich oben mit abgebildet.
Ich hab mich verschrieben, ich mein eigentlich Framework 😄
Ich kenne das Framework nicht
Im Grunde meine ich aber genau das, was Abt auch gesagt hat.
Es sollte in etwa so aussehen:
Leistungsdatum / Zeitraum: {{{StartDate}}} bis {{{EndDate}}}{{{#if Orderer}}}\r\nBesteller: {{{Orderer}}}{{{/if}}}
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Hallo,
das hab ich schon versucht gehabt allerdings wird dann \r\n mit abgedruckt 😦
Vielen Dank und Grüße!
A programmer is just a tool, which converts coffeine into code! 🙂
Zeig mal Deinen Code. Niemand hat Lust zu raten. 👍
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Entschuldige bitte da hast du natürlich recht:
var templateValues = new
{
Number = st.Number,
StartDate = st.DateOfOrder.HasValue ? st.DateOfOrder.Value.Date.ToShortDateString() : null,
EndDate = st.DateOfFinish.HasValue ? st.DateOfFinish.Value.Date.ToShortDateString() : null,
OrderType = st.OrderType != null ? st.OrderType.Name : null,
Text = st.Shipment_Text,
ContactPerson = st.ContactPerson != null ? st.ContactPerson.DisplayName : null,
Orderer = st.Orderer != null ? st.Orderer.DisplayName : null,
StatementTime = st.StatementTime.TotalHours,
Employee_Salutation = st.Employee != null && st.Employee.Salutation != null ? st.Employee.Salutation.Name : null,
Employee_FirstName = st.Employee != null ? st.Employee.Firstname : null,
Employee_LastName = st.Employee != null ? st.Employee.Lastname : null,
};
var templateLine = Handlebars.Compile(template.TemplateText);
var result = templateLine(templateValues);
Template:
Ticketnummer: {{{Number}}}
Leistungsdatum / Zeitraum: {{{StartDate}}} bis {{{EndDate}}}{{{#if Orderer}}}\r\nBesteller: {{{Orderer}}}{{{/if}}}{{{#if OrderType}}}\r\nEingangsform: {{{OrderType}}}{{{/if}}}{{{#if ContactPerson}}}\r\nKontaktperson: {{{ContactPerson}}}{{{/if}}}
Beschreibung:
{{{Text}}}
Result:
Ticketnummer: TI10019
Leistungsdatum / Zeitraum: 21.10.2014 bis \r\nEingangsform: telefonisch\r\nKontaktperson: asfdasdf
Beschreibung:
cxdssdf
A programmer is just a tool, which converts coffeine into code! 🙂
Ich würde es so ausprobieren:
Template:
Ticketnummer: {{{Number}}}
Leistungsdatum / Zeitraum: {{{StartDate}}} bis {{{EndDate}}}{{{#if Orderer}}}
Besteller: {{{Orderer}}}{{{/if}}}{{{#if OrderType}}}
Eingangsform: {{{OrderType}}}{{{/if}}}{{{#if ContactPerson}}}
Kontaktperson: {{{ContactPerson}}}{{{/if}}}
Beschreibung:
{{{Text}}}
EDIT: Obwohl, wirkt auch falsch. 🤔
@p!ille: Ich habs versucht und jetzt kommt das richtige Ergebnis raus:
Ticketnummer: TI10019
Leistungsdatum / Zeitraum: 21.10.2014 bis
Eingangsform: telefonisch
Kontaktperson: asfdasdf
Beschreibung:
cxdssdf
Vielen herzlichen Dank!
A programmer is just a tool, which converts coffeine into code! 🙂