2016-05-31 14 views
0

コードは以下のようになります。繰り返しコードを整理するにはどうすればよいですか?

1)私はいくつかの画像を持っている:

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

2)そして、私は、次のような構造を持っている:

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)))); 

私から文書構造を配置する必要があります2)ImageFieldのimageBytes変数を設定するために、1)からのループ内にあるが、ドキュメントは1つだけでなければならない。エラーがあります

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

答えて

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

: 重大\tコード\t説明\tプロジェクト\tファイル\tライン\t抑制状態 エラー\t CS1061 \t「ドキュメント」はありません私はどのようにループだけこの部分はよく分かりません'AddRow'の定義がなく、 'Document'型の最初の引数を受け入れる拡張メソッド 'AddRow'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)\t EPAM.Lookbook.Sitecore \t C:私は解決策見つけたプロジェクト\ \ EPM-lkbk \ SRC \ EPAM.Lookbook.Sitecore \ CMS \ PDF \ NewPdfBuilder.cs アクティブ – tesicg

+0

: IEnumerableを

テーブル= document.Tablesを。新しいフィールド(新しいImageField( "Image"、csImage、ImageType.Jpeg)) tables.ElementAt(0).AddRow(new TableRow()。 – tesicg

関連する問題