/// <summary> /// Constructs the HTML of the datatable. /// </summary> /// <returns>The datatable as HTML</returns> public IHtmlString Finish() { var datatableSessionObject = new DatatableSessionObject <TEntity> { DatatableProperties = _properties, HasLastColumn = _hasLastColumn, LastColumn = _lastColumn, LastColumnHeader = _lastColumnHeader }; _session.AddDatatableProperties(_datatableId, datatableSessionObject); return(BuildHtmlString()); }
public void TestThatTheCorrectSessionObjectIsReturnedForDifferentKeys() { const string Key1 = "key1", Key2 = "key2"; DatatableSessionObject<Person> object1 = new DatatableSessionObject<Person> {HasLastColumn = true}, object2 = new DatatableSessionObject<Person> {HasLastColumn = false}; _session.AddDatatableProperties(Key1, object1); _session.AddDatatableProperties(Key2, object2); Assert.That(_session.GetDatatableProperties<Person>(Key1), Is.EqualTo(object1)); Assert.That(_session.GetDatatableProperties<Person>(Key2), Is.EqualTo(object2)); }
public void TestThatTheCorrectSessionObjectIsReturnedForDifferentKeys() { const string Key1 = "key1", Key2 = "key2"; DatatableSessionObject <Person> object1 = new DatatableSessionObject <Person> { HasLastColumn = true }, object2 = new DatatableSessionObject <Person> { HasLastColumn = false }; _session.AddDatatableProperties(Key1, object1); _session.AddDatatableProperties(Key2, object2); Assert.That(_session.GetDatatableProperties <Person>(Key1), Is.EqualTo(object1)); Assert.That(_session.GetDatatableProperties <Person>(Key2), Is.EqualTo(object2)); }
/// <summary> /// The project. /// </summary> /// <param name="datatableSessionObject"> /// The datatable session object. /// </param> /// <returns> /// The projected entity /// </returns> public IEnumerable <IDictionary <string, dynamic> > Project(DatatableSessionObject <TEntity> datatableSessionObject) { IDatatableProperty <TEntity>[] datatableProperties = datatableSessionObject.DatatableProperties as IDatatableProperty <TEntity>[] ?? datatableSessionObject.DatatableProperties.ToArray(); foreach (TEntity entity in _entities) { var dictionary = new Dictionary <string, dynamic>(); foreach (var property in datatableProperties) { dictionary[property.ColumnHeader] = property.Display.Compile()(entity); } if (datatableSessionObject.HasLastColumn) { dictionary[datatableSessionObject.LastColumnHeader] = datatableSessionObject.LastColumn(entity).ToHtmlString(); } yield return(dictionary); } }
/// <summary> /// Initializes a new instance of the <see cref="DatatableParser{TEntity}" /> class. /// </summary> /// <param name="entities"> /// The entities. /// </param> /// <param name="sessionObject"> /// The session object. /// </param> public DatatableParser(IQueryable <TEntity> entities, DatatableSessionObject <TEntity> sessionObject) { _entities = entities; _properties = sessionObject.DatatableProperties.ToArray(); _sessionObject = sessionObject; }