Example #1
0
        public void FetchDataTest()
        {
            ReCreateContext();
            ResultFetchData <ObjectMappingForTest> resultFetchData = repository.FetchDataAsync(null).Result;

            Assert.IsNotNull(resultFetchData, "Результат запроса не должен быть null.");
            //Провека, что создан пустой объект с дефолтными значениями
            Assert.AreEqual(7, resultFetchData.TotalCountRows);
            Assert.AreEqual(7, resultFetchData.Items.Count);

            //Проверяем уже с заданым пейджингом
            resultFetchData = repository.FetchDataAsync(new FetchDataParameters(1, 2)).Result;

            Assert.IsNotNull(resultFetchData, "Результат запроса не должен быть null.");
            //Проверку, что вернулась первая страница
            Assert.AreEqual(7, resultFetchData.TotalCountRows);
            Assert.AreEqual(2, resultFetchData.Items.Count);
            Assert.AreEqual(1, resultFetchData.Items[0].Id);
            Assert.AreEqual(2, resultFetchData.Items[1].Id);

            //Проверка 2 страницы
            resultFetchData = repository.FetchDataAsync(new FetchDataParameters(2, 2)).Result;
            Assert.AreEqual(3, resultFetchData.Items[0].Id);
            Assert.AreEqual(4, resultFetchData.Items[1].Id);
        }
Example #2
0
        /// <summary>
        /// Метод, который получает данные из БД
        /// </summary>
        /// <param name="paramQuery">Параметры запроса: номер страницы, размер страницы. По дефолту размер страницы 40 записей</param>
        /// <returns></returns>
        public async Task <ResultFetchData <TEntity> > FetchDataAsync(IFetchDataParameters paramQuery)
        {
            if (paramQuery == null)
            {
                paramQuery = new FetchDataParameters();
            }
            paramQuery.CheckAndResetParam();

            ResultFetchData <TEntity> result = new ResultFetchData <TEntity>();

            result.TotalCountRows = await DbSetWithInclude.WheryDinamic(paramQuery.Filters).AsNoTracking().CountAsync();

            int startRow = (paramQuery.PageNumber - 1) * paramQuery.CountOnPage;
            IQueryable <TEntity> query = DbSetWithInclude.WheryDinamic(paramQuery.Filters).Skip(startRow).Take(paramQuery.CountOnPage);

            if (paramQuery.IsOnlyShowData)
            {
                query = query.AsNoTracking();
            }

            result.Items = await query.ToListAsync();

            result.PageNumber = paramQuery.PageNumber;
            return(result);
        }
Example #3
0
        public void FetchDataTest_WithDinamicFilters()
        {
            //ARRANGE
            ReCreateContext();
            FetchDataParameters param = new FetchDataParameters();

            param.Filters.Add(new WhereDinamicItem("Id", TypeFilterEnum.NOT_EQUAL, "2"));
            //ACT

            //Проверяем уже с заданым пейджингом
            ResultFetchData <ObjectMappingForTest> resultFetchData = repository.FetchDataAsync(param).Result;

            //ASSERT

            Assert.AreEqual(6, resultFetchData.Items.Count);
            Assert.IsFalse(resultFetchData.Items.Any(x => x.Id == 2));
        }