public async Task <IActionResult> Index(int?page, string sortColumn, string sortDirection, string filter)
        {
            var me = await this._userManager.FindByIdAsync(HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));

            var dataSource = this._notificationReciever.FetchHistory(me);

            if (!string.IsNullOrWhiteSpace(filter))
            {
                dataSource = dataSource.Where(x => x.SubjectId.ToLower() == filter.ToLower());
            }

            var dataTable = DataTableBuilder
                            .Create(dataSource)
                            .Sort(sortColumn ?? "SubjectId", sortDirection ?? "Ascending")
                            .Page(page)
                            .RowLink(x => x.URL)
                            .Columns(columns =>
            {
                columns.Add(x => x.Id).Title("Id").Width(100);
                columns.Add(x => x.SubjectId).Title("Ämne").Width(200);
                columns.Add(x => x.ShortDescription).Title("Beskrivning");
            });

            return(this.ViewOrOk(dataTable));
        }
Beispiel #2
0
        public void ShouldFindUnmatchingValuesPerKey()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Peter" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Henell" })
                    .Build();

            var keys = new List <string>();

            keys.Add("ID");


            var result = comparer.Compare(a, b, keys);

            Assert.That(result.ComparisonErrors.Where(e => e.ValuesDoesNotMatch).Count(), Is.EqualTo(1));
            var diffValue = result.ComparisonErrors.Where(e => e.ValuesDoesNotMatch).FirstOrDefault().ValueDifferences.FirstOrDefault();

            Assert.That(diffValue.ColumnName, Is.EqualTo("Name"));
            Assert.That(diffValue.ExpectedValue, Is.EqualTo("Peter"));
            Assert.That(diffValue.ActualValue, Is.EqualTo("Henell"));
        }
        public void ShouldBuildEmptyDataTable()
        {
            var dt = DataTableBuilder.Create()
                     .Build();

            Assert.That(dt.Rows.Count, Is.EqualTo(0));
        }
Beispiel #4
0
        public async Task <IActionResult> Index(int?page, string sortColumn, string sortDirection, string filter)
        {
            var dataSource = this._context.Designs.Include(x => x.Images).AsQueryable();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                dataSource = dataSource.Where(x => x.Title.ToLower() == filter.ToLower());
            }

            var dataTable = DataTableBuilder
                            .Create(dataSource)
                            .Sort(sortColumn ?? "Title", sortDirection ?? "Ascending")
                            .Page(page)
                            .RowLink(x => Url.Action("Display", new { id = x.Id }))
                            //.CssClass("mox-datatable clean")
                            .Columns(columns =>
            {
                columns.Add(x => x.Id).Title("Id").Width(100);
                columns.Add(x => x.Title).Title("Titel");
                columns.Add(x => x.Images.Count).Title("Bilder").Width(100);
            })
                            .Buttons(buttons =>
            {
                buttons.Add(x => Url.Action("display", new { Id = x.Id })).CssClass("display");
                buttons.Add(x => Url.Action("edit", new { Id = x.Id })).CssClass("edit");
                buttons.Add(x => Url.Action("delete", new { Id = x.Id })).CssClass("delete");
            });

            return(this.ViewOrOk(dataTable));
        }
        public void ShouldBuildADataTableWithSeveralRows()
        {
            var dt = DataTableBuilder.Create()
                     .WithColumns("ID", "Name")
                     .WithRows(new object[] { 1, "Peter" })
                     .WithRows(new object[] { 2, "Henell" })
                     .WithRows(new object[] { 3, "Anders" })
                     .WithRows(new object[] { 4, "Johan" })
                     .Build();

            Assert.That(dt.Rows.Count, Is.EqualTo(4));
        }
        public async Task <IActionResult> Index(int?page, string sortColumn, string sortDirection)
        {
            var dataSource = this._context.Roles.Select(x => new { Name = this._localizer[$"role_{x.Name}"].ToString() });
            var dataTable  = DataTableBuilder
                             .Create(dataSource)
                             .Sort(sortColumn ?? "Name", sortDirection ?? "Ascending")
                             .Page(page)
                             .Columns(columns =>
            {
                columns.Add(x => x.Name).Title(this._localizer["Namn"]);
            });

            return(this.ViewOrOk(dataTable));
        }
Beispiel #7
0
        public void ShouldNotAllowDifferentAmountOfColumnsInDataReaderAndObject()
        {
            var dt = DataTableBuilder.Create()
                     .WithColumns("Age") // Name is missing in the DataTable
                     .WithRows(new object[] { 5 })
                     .Build();

            var reader = dt.CreateDataReader();

            // check for object
            Assert.Throws <ArgumentException>(() => DataReaderToDTOMapper.DataReaderToObject <MockObject>(reader));
            // check for struct
            Assert.Throws <ArgumentException>(() => DataReaderToDTOMapper.DataReaderToStruct <MockStruct>(reader));
        }
        public void ShouldBuildADataTableWithOneRow()
        {
            var dt = DataTableBuilder.Create()
                     .WithColumns("ID", "Name")
                     .WithRows(new object[] { 1, "Peter" })
                     .Build();

            Assert.That(dt.Rows.Count, Is.EqualTo(1));

            var firstRow = dt.Rows[0];

            Assert.That(firstRow["Name"], Is.EqualTo("Peter"));
            Assert.That(firstRow["ID"], Is.EqualTo(1));
        }
Beispiel #9
0
        public void NoResultColumns()
        {
            var a = DataTableBuilder.Create("a")
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .Build();

            var keys = new List <string> {
                "aID"
            };


            Assert.Throws(typeof(ArgumentException), () => comparer.Compare(a, b, keys));
        }
Beispiel #10
0
        public void EmptyResultSetsIsOK()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .Build();

            var keys = new List <string> {
                "ID"
            };

            comparer.Compare(a, b, keys);
        }
Beispiel #11
0
        public void ShouldMapReaderToObject()
        {
            var dt = DataTableBuilder.Create()
                     .WithColumns("Age", "Name")
                     .WithRows(new object[] { 5, "Peter" })
                     .Build();

            var reader        = dt.CreateDataReader();
            var mappedObjects = DataReaderToDTOMapper.DataReaderToObject <MockObject>(reader);

            Assert.That(mappedObjects.Count, Is.EqualTo(1));
            var o = mappedObjects.FirstOrDefault();

            Assert.That(o.Age, Is.EqualTo(5));
            Assert.That(o.Name, Is.EqualTo("Peter"));
        }
Beispiel #12
0
        public void ResultColumnsDoNotMatch()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("aID", "aName", "aValidFrom")
                    .WithRows(new object[] { 5, "Peter", "April" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("bID", "bName", "bValidFrom")
                    .WithRows(new object[] { 5, "Peter", "June" })
                    .Build();

            var keys = new List <string> {
                "aID"
            };


            Assert.Throws(typeof(ArgumentException), () => comparer.Compare(a, b, keys));
        }
Beispiel #13
0
        public void ShouldCompareRowsByKeys()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Peter" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Peter" })
                    .Build();

            var keys = new List <string>();

            keys.Add("ID");

            var result = comparer.Compare(a, b, keys);

            Assert.That(result.ComparisonErrors.Count, Is.EqualTo(0));
        }
Beispiel #14
0
        public void ShouldCalculateComparisonStatistics()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .WithRows(new object[] { 5, "Peter", "April" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .WithRows(new object[] { 5, "Peter", "June" })
                    .Build();

            var keys = new List <string> {
                "ID"
            };


            var result = comparer.Compare(a, b, keys);

            Assert.That(result.GetCalculatedStats().Values["ValidFrom"].NonMatchingCount, Is.EqualTo(1));
        }
Beispiel #15
0
        public void ShouldNotAllowIgnoringKeyColumns()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .WithRows(new object[] { 5, "Peter", "April" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .WithRows(new object[] { 5, "Peter", "June" })
                    .Build();

            var keys = new List <string> {
                "ID"
            };
            var ignores = new List <string> {
                "ID"
            };

            Assert.Throws(typeof(ArgumentException), () => comparer.Compare(a, b, keys, ignores));
        }
Beispiel #16
0
        public void ShouldNotAllowDuplicatesInRightTable()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Peter" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Henell" })
                    .WithRows(new object[] { 5, "Henell" })
                    .Build();

            var keys = new List <string>();

            keys.Add("ID");


            var result = comparer.Compare(a, b, keys);

            Assert.That(result.ComparisonErrors.Where(e => e.MultipleRowPerKeyInB).Count(), Is.EqualTo(1));
        }
Beispiel #17
0
        public void ShouldHandleNullValuesInKey()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { null, "Peter" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Henell" })
                    .Build();

            var keys = new List <string>();

            keys.Add("ID");


            var result = comparer.Compare(a, b, keys);

            Assert.That(
                result.ComparisonErrors.Where(e => e.MissingInB).Count(),
                Is.EqualTo(1));
        }
Beispiel #18
0
        public void ShouldIgnoreColumns()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .WithRows(new object[] { 5, "Peter", "April" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name", "ValidFrom")
                    .WithRows(new object[] { 5, "Peter", "June" })
                    .Build();

            var keys = new List <string> {
                "ID"
            };
            var ignored = new List <string> {
                "ValidFrom"
            };

            var result = comparer.Compare(a, b, keys, ignored);

            Assert.That(
                result.ComparisonErrors.Count, Is.EqualTo(0));
        }
Beispiel #19
0
        public void ShouldIdentifyMissingKey()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Peter" })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 4, "Peter" })
                    .Build();

            var keys = new List <string>();

            keys.Add("ID");

            var result = comparer.Compare(a, b, keys);


            Assert.That(result.ComparisonErrors.Where(e => e.MissingInB).Count(), Is.EqualTo(1));
            // Even if the values "Peter" and "Henell" does not match they should not end up as ValuesDoesNotMatch
            // because the key did not match
            Assert.That(result.ComparisonErrors.Where(e => e.ValuesDoesNotMatch).Count(), Is.EqualTo(0));
        }
        public async Task <IActionResult> Index(int?page, string sortColumn, string sortDirection, string filter)
        {
            var dataSource = this._context.Users.Where(x => x.Email != "*****@*****.**").AsQueryable(); // TODO: Make a better way to hide users from this list!
            var userRoles  = await this._context.UserRoles.ToListAsync();

            var roles = await this._context.Roles.ToListAsync();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                dataSource = dataSource.Where(x => x.Email.ToLower() == filter.ToLower());
            }

            var dataTable = DataTableBuilder
                            .Create(dataSource.Select(x => new
            {
                Id    = x.Id,
                Email = x.Email,
                Name  = x.Name,
                Roles = string.Join(", ", roles.Where(role => userRoles.Where(ur => ur.UserId == x.Id).Select(ur => ur.RoleId).Contains(role.Id)).Select(role => this._localizer[$"role_{role.Name}"]))
            }))
                            .Sort(sortColumn ?? "Email", sortDirection ?? "Ascending")
                            .Page(page)
                            .RowLink(x => Url.Action("Edit", new { id = x.Id }))
                            .Columns(columns =>
            {
                columns.Add(x => x.Email).Title(this._localizer["E-post"]).Width(250);
                columns.Add(x => x.Name).Title(this._localizer["Namn"]);
                columns.Add(x => x.Roles).Title(this._localizer["Behörigheter"]);
            })
                            .Buttons(buttons =>
            {
                buttons.Add(x => Url.Action("edit", new { x.Id })).CssClass("edit");
                buttons.Add(x => Url.Action("delete", new { x.Id })).CssClass("delete");
            });

            return(this.ViewOrOk(dataTable));
        }
Beispiel #21
0
        public void ShouldHandleNullValuesInExpectedRow()
        {
            var a = DataTableBuilder.Create("a")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, null })
                    .Build();
            var b = DataTableBuilder.Create("b")
                    .WithColumns("ID", "Name")
                    .WithRows(new object[] { 5, "Peter" })
                    .Build();

            var keys = new List <string>();

            keys.Add("ID");


            var result = comparer.Compare(a, b, keys);

            var diffValue = result.ComparisonErrors.Where(e => e.ValuesDoesNotMatch).FirstOrDefault().ValueDifferences.FirstOrDefault();

            Assert.That(diffValue.ColumnName, Is.EqualTo("Name"));
            Assert.That(diffValue.ExpectedValue, Is.EqualTo(System.DBNull.Value));
            Assert.That(diffValue.ActualValue, Is.EqualTo("Peter"));
        }