2016-05-31 12 views
0

Der Code sieht wie folgt:Wie man wiederholenden Code organisiert?

1) Ich habe ein paar Bilder:

var imageIds = caseStudyPage.Images; 
foreach (var imageId in imageIds) 
{ 
    byte[] csImage = GetImage(imageId); 
} 

2) Und ich habe die Struktur wie folgt:

var document = new Document(); 
document 
    .AddField(new TextField("CS Counter Basic Name", "Case Study")) 
    .AddField(new TextField("CS Counter Number", _numberInParentDocument.ToString())) 
    .AddField(new TextField("Page Title", caseStudyPage.Page_Title)) 
    .AddField(new TextField("Common Footer Text 1", commonFooterText1)) 
    .AddField(new TextField("Page Title Content", caseStudyPage.Page_Title)) 
    .AddTable(new Table("Images") 
     .AddRow(new TableRow().AddField(new ImageField("Image", imageBytes, ImageType.Jpeg)) 
      .AddField(new TextField("Overview", caseStudyPage.Overview)) 
      .AddField(new TextField("Engagement", caseStudyPage.Engagement)) 
      .AddField(new TextField("Publish Date", caseStudyPage.Publish_Date.ToString("MMM. dd, yyyy"))) 
    .AddField(new TextField("Common Footer Text 2", commonFooterText2)))); 

I Dokumentenstruktur setzen müssen aus 2) innerhalb der Schleife von 1), um ImageBytes-Variable von ImageField festzulegen, aber Dokument sollte nur eins sein. Ich bin nicht sicher, wie man Schleife nur dieser Teil:

.AddRow(new TableRow().AddField(new ImageField("Image", imageBytes, ImageType.Jpeg)) 

Antwort

0
var document = new Document(); 
document 
    .AddField(new TextField("CS Counter Basic Name", "Case Study")) 
    .AddField(new TextField("CS Counter Number", _numberInParentDocument.ToString())) 
    .AddField(new TextField("Page Title", caseStudyPage.Page_Title)) 
    .AddField(new TextField("Common Footer Text 1", commonFooterText1)) 
    .AddField(new TextField("Page Title Content", caseStudyPage.Page_Title)); 

var table = new Table("Images"); 
foreach (var imageId in imageIds) 
{ 
    byte[] csImage = GetImage(imageId); 
    table.AddRow(new TableRow().AddField(new ImageField("Image", csImage, ImageType.Jpeg)) 
      .AddField(new TextField("Overview", caseStudyPage.Overview)) 
      .AddField(new TextField("Engagement", caseStudyPage.Engagement)) 
      .AddField(new TextField("Publish Date", caseStudyPage.Publish_Date.ToString("MMM. dd, yyyy"))); 
} 

document.AddTable(table); 
document.AddField(new TextField("Common Footer Text 2", commonFooterText2)))); 
+0

Es gibt einen Fehler: Severity \t-Code \t Beschreibung \t Projekt \t Datei \t Linie \t Unterdrückungszustand Fehler \t CS1061 \t 'Dokument' tut enthält keine Definition für 'AddRow' und keine Erweiterungsmethode 'AddRow', die ein erstes Argument vom Typ 'Document' akzeptiert, wurde gefunden (fehlt eine using-Direktive oder eine Assembly-Referenz?) \t EPAM.Lookbook.Sitecore \t C: \ Projects \ epm-lkbk \ src \ EPAM.Lookbook.Sitecore \ CMS \ PDF \ NewPdfBuilder.cs Aktive – tesicg

+0

Ich habe die Lösung gefunden: IEnumerable

Tabellen = document.Tables; tables.ElementAt (0) .AddRow (neues TableRow(). AddField (neues ImageField ("Image", csImage, ImageType.Jpeg)) – tesicg

Verwandte Themen