Пример #1
0
        public void GetOnePageOfProducts_ListContainsSevenProductsAndPageSizeIsSix_ResultContainsPageCountEqualsTwo()
        {
            //Arrange
            List <Product> list = fullListOfProducts();

            list.Add(
                new Product
            {
                Id           = 7,
                CategoryId   = 1,
                Name         = "Monarch Plus RC3 Rear Shock",
                Price        = 386.49M,
                Description  = "",
                Manufacturer = "",
                Quantity     = 15
            });
            var configuration = Substitute.For <IConfiguration>();

            configuration.GetSection("PageSize").Value.Returns("6");
            var sut = new PagingService(configuration);

            //Act
            var result = sut.GetOnePageOfProducts <Product>(list, 1);

            //Assert
            result.Should().BeOfType(typeof(PagedResponse <Product>));
            result.PageCount.Should().Be(2);
            result.CurrentPage.Should().Be(1);
        }
Пример #2
0
        public void GetPagingTest_If_page_is_zero_or_smaller_returns_throws()
        {
            var paging = new PagingService();

            Exception ex = Assert.Throws <PagingExeption>(() => paging.GetPaging(_inputDialogues, 0));

            Assert.Equal(ex.Message, "Page is not be zero or smaller");
        }
Пример #3
0
        public void GetPagingTest_If_page_is_too_large_returns_throws()
        {
            var paging = new PagingService();

            Exception ex = Assert.Throws <PagingExeption>(() => paging.GetPaging(_inputDialogues, 2));

            Assert.Equal(ex.Message, "Page is too large");
        }
Пример #4
0
        public void GetPagingTest_If_collectio_is_null_should_be_returns_throws()
        {
            var paging = new PagingService();

            Exception ex = Assert.Throws <PagingExeption>(() => paging.GetPaging((IEnumerable <Dialogue>)null));

            Assert.Equal(ex.Message, "Collection data is not exist");
        }
Пример #5
0
        public void GetPagingTest_changeSizePage(int sizePage, int dataCount, bool nextPage)
        {
            var paging = new PagingService();
            var result = paging.GetPaging(_inputDialogues, pageSize: sizePage);

            Assert.True(result.Data.Count() == dataCount);
            Assert.True(result.Count == _inputDialogues.Count());
            Assert.True(result.Page == 1);
            Assert.True(result.NextPage == nextPage);
            Assert.False(result.PreviousPage);
            Assert.True(result.PageSize == sizePage);
        }
Пример #6
0
        public void GetPagingTest()
        {
            var paging = new PagingService();
            var result = paging.GetPaging(_inputDialogues);

            Assert.True(result.Data.Count() == _inputDialogues.Count());
            Assert.True(result.Count == _inputDialogues.Count());
            Assert.True(result.Page == 1);
            Assert.False(result.NextPage);
            Assert.False(result.PreviousPage);
            Assert.True(result.PageSize == 20);
        }
Пример #7
0
        public void Can_Get_Correct_Items_Test()
        {
            //given
            IPagingService service = new PagingService();
            //when
            PagedResponse response = service.Get(new PagedCriteria()
            {
                PageNumber = 1, PageSize = 25, Posts = Data.Get()
            });

            //then
            response.Posts.Count().Should().Be(25);
        }
Пример #8
0
        public void Can_Get_Correct_Total_Test()
        {
            //given
            IPagingService service = new PagingService();
            //when
            PagedResponse response = service.Get(new PagedCriteria()
            {
                PageNumber = 1, PageSize = 10, Posts = Data.Get()
            });

            //then
            response.Total.Should().Be(100);
        }
Пример #9
0
        public void GetPagingTest_changePage(int page, int sizeData, bool nextPage, bool previousPage, string firstElementName, string lastElementName)
        {
            const int sizePage = 3;

            var paging = new PagingService();
            var result = paging.GetPaging(_inputDialogues, page, sizePage);

            Assert.Equal(result.Data.Count(), sizeData);
            Assert.Equal(result.Data.First().Name, firstElementName);
            Assert.Equal(result.Data.Last().Name, lastElementName);
            Assert.Equal(result.Count, _inputDialogues.Count());
            Assert.Equal(result.Page, page);
            Assert.Equal(result.NextPage, nextPage);
            Assert.Equal(result.PreviousPage, previousPage);
            Assert.Equal(result.PageSize, 3);
        }
Пример #10
0
        public void GetOnePageOfProducts_PangeNumberIsBiggerThanMaxPageNumber_ResultListIsEmptyAndCurrentPageIsThree()
        {
            //Arrange
            List <Product> list          = fullListOfProducts();
            var            configuration = Substitute.For <IConfiguration>();

            configuration.GetSection("PageSize").Value.Returns("4");
            var sut = new PagingService(configuration);

            //Act
            var result = sut.GetOnePageOfProducts <Product>(list, 3);

            //Assert
            result.Should().BeOfType(typeof(PagedResponse <Product>));
            result.ListOfItems.Count.Should().Be(0);
            result.PageCount.Should().Be(2);
            result.CurrentPage.Should().Be(3);
        }
Пример #11
0
        public void GetOnePageOfProducts_ListOfProductsIsEmpty_ResultListIsEmptyAndPageCountIsOne()
        {
            //Arrange
            List <Product> list          = new List <Product>();
            var            configuration = Substitute.For <IConfiguration>();

            configuration.GetSection("PageSize").Value.Returns("4");
            var sut = new PagingService(configuration);

            //Act
            var result = sut.GetOnePageOfProducts <Product>(list, 1);

            //Assert
            result.Should().BeOfType(typeof(PagedResponse <Product>));
            result.ListOfItems.Count.Should().Be(0);
            result.PageCount.Should().Be(1);
            result.CurrentPage.Should().Be(1);
        }
Пример #12
0
        public void GetOnePageOfProducts_ListContainsSixProductsAndPageSizeIsThree_ResultContainsListOfThreeProductsAndPageCountEqualsTwo()
        {
            //Arrange
            List <Product> list          = fullListOfProducts();
            var            configuration = Substitute.For <IConfiguration>();

            configuration.GetSection("PageSize").Value.Returns("3");
            var sut = new PagingService(configuration);

            //Act
            var result = sut.GetOnePageOfProducts <Product>(list, 1);

            //Assert
            result.Should().BeOfType(typeof(PagedResponse <Product>));
            result.ListOfItems.Count.Should().Be(3);
            result.PageCount.Should().Be(2);
            result.CurrentPage.Should().Be(1);
        }
Пример #13
0
        public SimpleMoldelFilter <ContactVM> GetFilter(SimpleMoldelFilter <ContactVM> filterModel)
        {
            IQueryable <Tbl_Contact> query = _unitOfWork.Contacts.Filter(x => x.ID > 0).OrderBy(x => x.FirstName);

            if (!String.IsNullOrEmpty(filterModel.field1))
            {
                query = query.Where(x => x.FirstName.Contains(filterModel.field1) || x.LastName.Contains(filterModel.field1));
            }
            if (!String.IsNullOrEmpty(filterModel.field2))
            {
                query = query.Where(x => x.Department.Contains(filterModel.field2));
            }
            if (filterModel.field3 > 0)
            {
                query = query.Where(x => x.ContractType.Equals(filterModel.field3));
            }
            if (query.Any())
            {
                filterModel.Pager.TotalRecords = query.Count();
                query = PagingService.QueryRecordsForPage(query, filterModel.Pager.CurrentPage, filterModel.Pager.PageSize);
                filterModel.Pager.CalcululatePagesAndRecords(filterModel.Pager.TotalRecords
                                                             );

                List <ContactVM> list = new List <ContactVM>();
                if (filterModel.Pager.TotalRecords > 0)
                {
                    foreach (var dbStudent in query.ToList())
                    {
                        list.Add(converter.ConvertToModel(dbStudent));
                    }
                }
                filterModel.ListOfItemsToShow = list.OrderBy(x => x.FullName);
            }
            else
            {
                filterModel.Pager = new Helper.Pager();
            }

            return(filterModel);
        }
Пример #14
0
        public async Task <PagingResult <View_User> > Get(PagingRequest <UserGetRequest> value)
        {
            if (!ModelState.IsValid)
            {
                return(new PagingResult <View_User>()
                {
                    code = (int)BasicControllerEnums.UnprocessableEntity,

                    message = ModelErrors()
                });
            }

            if (string.IsNullOrWhiteSpace(value.orderby))
            {
                value.orderby = "UserID";
            }

            var q = new PagingService <View_User>(db, value, "View_User")
            {
                where = (where, sqlParams) =>
                {
                    where.Add(" ( Tenants LIKE '%\"TenantId\":" + TenantId + "%') ");

                    if (!User.IsInRole(Roles.Administrators))
                    {
                        where.Add("Lineage.IsDescendantOf(hierarchyid::Parse ('" + UserLineage + "')) = 1");
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.email))
                    {
                        where.Add("Email = @Email");
                        sqlParams.Add(new SqlParameter("@Email", value.q.email));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.name))
                    {
                        where.Add("UserName like @UserName");
                        sqlParams.Add(new SqlParameter("@UserName", "%" + value.q.name + "%"));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.phoneNumber))
                    {
                        where.Add("PhoneNumber = @PhoneNumber");
                        sqlParams.Add(new SqlParameter("@PhoneNumber", value.q.phoneNumber));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.roles))
                    {
                        var roleIds = value.q.roles.Split(new string[] { "," },
                                                          StringSplitOptions.RemoveEmptyEntries).ToList();

                        var rolesExpression = roleIds.Select(r => "Roles Like '%\"Id\":" + r + ",%'");

                        where.Add(" ( " + string.Join(" AND ", rolesExpression) + " ) ");
                    }
                }
            };

            var result = await q.ExcuteAsync(propConverter : (prop, val) =>
            {
                switch (prop.Name)
                {
                case "Roles":
                    return(JsonConvert.DeserializeObject <List <View_User_Role> >(val.ToString()));

                case "Claims":
                    return(JsonConvert.DeserializeObject <List <View_User_Claim> >(val.ToString()));

                case "Files":
                    return(JsonConvert.DeserializeObject <List <View_User_File> >(val.ToString()));

                case "Properties":
                    return(JsonConvert.DeserializeObject <List <View_User_Property> >(val.ToString()));

                case "Tenants":
                    return(JsonConvert.DeserializeObject <List <View_User_Tenant> >(val.ToString()));

                default:
                    return(val);
                }
            });

            return(result);
        }
Пример #15
0
        public async Task <PagingResult <View_User> > Get([FromQuery] PagingRequest <UserGetRequest> value)
        {
            if (!ModelState.IsValid)
            {
                return(new PagingResult <View_User>()
                {
                    code = (int)BasicControllerEnums.UnprocessableEntity,

                    message = ModelErrors()
                });
            }

            if (string.IsNullOrWhiteSpace(value.orderby))
            {
                value.orderby = "UserID";
            }

            var q = new PagingService <View_User>(db, value, "View_User")
            {
                Where = (where, sqlParams) =>
                {
                    where.Add(" Tenants LIKE @TenantId");
                    sqlParams.Add(new SqlParameter("@TenantId", $"%TenantId\":{TenantId}%"));

                    if (!User.IsInRole(DefaultRoles.Administrator) && !string.IsNullOrWhiteSpace(UserLineage))
                    {
                        //where.Add("Lineage.IsDescendantOf(hierarchyid::Parse ('" + UserLineage + "')) = 1");
                        where.Add("Lineage LIKE @Lineage");
                        sqlParams.Add(new SqlParameter("@Lineage", "%" + UserLineage));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.email))
                    {
                        where.Add("Email = @Email");
                        sqlParams.Add(new SqlParameter("@Email", value.q.email));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.name))
                    {
                        where.Add("UserName like @UserName");
                        sqlParams.Add(new SqlParameter("@UserName", "%" + value.q.name + "%"));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.phoneNumber))
                    {
                        where.Add("PhoneNumber = @PhoneNumber");
                        sqlParams.Add(new SqlParameter("@PhoneNumber", value.q.phoneNumber));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.role))
                    {
                        where.Add("Roles LIKE @Role");
                        sqlParams.Add(new SqlParameter("@Role", $"%Name\":\"{value.q.role}%"));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.providerName))
                    {
                        where.Add("Logins LIKE @LoginProvider");
                        sqlParams.Add(new SqlParameter("@LoginProvider", $"%LoginProvider\":\"{value.q.providerName}%"));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.providerKey))
                    {
                        where.Add("Logins LIKE @ProviderKey");
                        sqlParams.Add(new SqlParameter("@ProviderKey", $"%ProviderKey\":\"{value.q.providerKey}%"));
                    }

                    if (!string.IsNullOrWhiteSpace(value.q.claimType) && !string.IsNullOrWhiteSpace(value.q.claimValue))
                    {
                        where.Add("Claims LIKE @ClaimType AND Claims LIKE @ClaimValue");
                        sqlParams.Add(new SqlParameter("@ClaimType", $"%ClaimType\":\"{value.q.claimType}%"));
                        sqlParams.Add(new SqlParameter("@ClaimValue", $"%ClaimValue\":\"{value.q.claimValue}%"));
                    }
                }
            };

            var result = await q.ExcuteAsync(propConverter : (prop, val) =>
            {
                switch (prop.Name)
                {
                case "Roles":
                    return(JsonConvert.DeserializeObject <List <View_User_Role> >(val.ToString()));

                case "Claims":
                    return(JsonConvert.DeserializeObject <List <View_User_Claim> >(val.ToString()));

                case "Files":
                    return(JsonConvert.DeserializeObject <List <View_User_File> >(val.ToString()));

                case "Properties":
                    return(JsonConvert.DeserializeObject <List <View_User_Property> >(val.ToString()));

                case "Tenants":
                    return(JsonConvert.DeserializeObject <List <View_User_Tenant> >(val.ToString()));

                case "Logins":
                    return(JsonConvert.DeserializeObject <List <View_User_Login> >(val.ToString()));

                default:
                    return(val);
                }
            });

            return(result);
        }