Advertisement
Guest User

Fluent design

a guest
Jul 30th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.46 KB | None | 0 0
  1. public class SpreadsheetCell
  2.     {
  3.         private readonly SpreadsheetCellLocation _spreadsheetCellLocation;
  4.  
  5.         public SpreadsheetCell()
  6.         {
  7.             Content = string.Empty;
  8.             RowIndex = 0;
  9.             ColumnIndex = 0;
  10.  
  11.             _spreadsheetCellLocation = new SpreadsheetCellLocation(this);
  12.         }
  13.  
  14.         public SpreadsheetCellLocation For
  15.         {
  16.             get { return _spreadsheetCellLocation; }
  17.         }
  18.  
  19.         private string Content { get; set; }
  20.         private int ColumnIndex { get; set; }
  21.         private int RowIndex { get; set; }
  22.  
  23.         public SpreadsheetCell WithContent(string content)
  24.         {
  25.             Content = content;
  26.             return this;
  27.         }
  28.  
  29.         public Cell Create()
  30.         {
  31.             var cell = new Cell { DataType = CellValues.InlineString };
  32.  
  33.             var cellReference = string.Empty;
  34.  
  35.             if (ColumnIndex != 0)
  36.             {
  37.                 cellReference = SpreadsheetUtils.GetColumnName(ColumnIndex);
  38.             }
  39.  
  40.             if (RowIndex != 0)
  41.             {
  42.                 cellReference += RowIndex;
  43.             }
  44.  
  45.             if (!string.IsNullOrEmpty(cellReference))
  46.             {
  47.                 cell.CellReference = cellReference;
  48.             }
  49.  
  50.             var textNode = new Text { Text = Content };
  51.  
  52.             var inlineString = new InlineString();
  53.             inlineString.AppendChild(textNode);
  54.  
  55.             cell.AppendChild(inlineString);
  56.  
  57.             return cell;
  58.         }
  59.  
  60.         private void SetColumn(int columnIndex)
  61.         {
  62.             ColumnIndex = columnIndex;
  63.         }
  64.  
  65.         private void SetRow(int rowIndex)
  66.         {
  67.             RowIndex = rowIndex;
  68.         }
  69.  
  70.         #region Nested type: SpreadsheetCellLocation
  71.  
  72.         public class SpreadsheetCellLocation
  73.         {
  74.             private readonly SpreadsheetCell _spreadsheetCell;
  75.  
  76.             public SpreadsheetCellLocation(SpreadsheetCell spreadsheetCell)
  77.             {
  78.                 _spreadsheetCell = spreadsheetCell;
  79.             }
  80.  
  81.             public SpreadsheetCell Row(int rowIndex)
  82.             {
  83.                 _spreadsheetCell.SetRow(rowIndex);
  84.  
  85.                 return _spreadsheetCell;
  86.             }
  87.  
  88.             public SpreadsheetCell Column(int columnIndex)
  89.             {
  90.                 _spreadsheetCell.SetColumn(columnIndex);
  91.  
  92.                 return _spreadsheetCell;
  93.             }
  94.         }
  95.  
  96.         #endregion
  97.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement