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); }
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"); }
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"); }
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"); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }