すべてのシートでタスクをロールアップするインターフェイスを構築しようとしています。そのため、名前または電子メール アドレスをクエリとして使用して Search メソッドを使用し、結果を繰り返して SearchObjectType が ROW であるかどうかを確認しようとしました。結果は得られますが、完全ではありません。これにアプローチするより良い方法はありますか?
string query = "name@domain.org";
IList<SearchResultItem> results = smartsheet.SearchResources.Search(query).Results;
foreach (SearchResultItem result in results)
{
if (result.ObjectType == SearchObjectType.ROW)
{
Sheet thisSheet = smartsheet.SheetResources.GetSheet(result.ParentObjectId.Value, new SheetLevelInclusion[] { SheetLevelInclusion.ROW_PERMALINK }, null, null, null, null, null, null);
Row row = smartsheet.SheetResources.RowResources.GetRow(result.ParentObjectId.Value, result.ObjectId.Value, new RowInclusion[] { RowInclusion.COLUMNS, RowInclusion.ROW_PERMALINK, RowInclusion.COLUMN_TYPE, RowInclusion.FORMAT }, null);
string rowData = string.Empty;
Console.WriteLine("Sheet info: " + thisSheet.Name + " " + thisSheet.Permalink);
foreach (Cell cell in row.Cells)
{
rowData += cell.DisplayValue + ",";
}
Console.WriteLine(rowData);
}
}