Exemple #1
0
        /// <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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
 /// <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;
 }