public void GetTypeOfFlowReport_CatIdNot0_ViewResultReturned()
        {
            Mock <IReportModelCreator> mockCreator = new Mock <IReportModelCreator>();

            mockCreator.Setup(
                m => m.CreateByTypeReportModel(It.IsAny <TempReportModel>(), It.IsAny <WebUser>(), It.IsAny <int>()))
            .Returns(new ReportModel());
            var target          = new ReportController(null, null, mockCreator.Object, null);
            var tempReportModel = new TempReportModel()
            {
                CatId = 1
            };
            var page = 1;
            var user = new WebUser()
            {
                Id = "1"
            };

            var result = target.GetTypeOfFlowReport(tempReportModel, user, page);
            var model  = ((PartialViewResult)result).Model;

            mockCreator.Verify(m => m.CreateByTypeReportModel(tempReportModel, user, page), Times.AtLeastOnce);
            Assert.IsNotNull(model);
            Assert.IsInstanceOfType(result, typeof(PartialViewResult));
        }
示例#2
0
        private ReportModel GetByTypeOfFlowReportModel(TempReportModel model, WebUser user, int page,
                                                       List <PayItem> pItemList)
        {
            string categoryName;

            try
            {
                categoryName = _categoryService.GetItem(model.CatId).Name;
            }
            catch (ServiceException e)
            {
                throw new WebUiException(
                          $"Ошибка в типе {nameof(ReportModelCreator)} в методе {nameof(GetByTypeOfFlowReportModel)}",
                          e);
            }
            return(new ReportModel()
            {
                CategoryName = categoryName,
                ItemsPerPage = pItemList
                               .Skip((page - 1) * _itemsPerPage)
                               .Take(_itemsPerPage)
                               .ToList(),
                AllItems = pItemList.ToList(),
                PagingInfo = _pagingCreator.Create(page, _itemsPerPage, pItemList.Count),
                CategoryId = model.CatId,
                DtFrom = model.DtFrom,
                DtTo = model.DtTo
            });
        }
示例#3
0
        public ReportModel CreateByTypeReportModel(TempReportModel model, WebUser user, int page)
        {
            List <PayItem> tempList = new List <PayItem>();
            var            cacheKey = "ByTypeOfFlow_" + model.DtFrom.Date.ToShortDateString() + "_" + model.DtTo.Date.ToShortDateString();

            try
            {
                var cachedItems = (List <PayItem>)_cacheManager.Get(cacheKey);
                if (cachedItems != null)
                {
                    tempList = cachedItems;
                }
                else
                {
                    tempList =
                        _dbHelper.GetCategoryPayItemsInDatesWeb(model.DtFrom, model.DtTo, model.CatId, user)
                        .OrderByDescending(x => x.Date)
                        .ToList();
                    _cacheManager.Set(cacheKey, tempList);
                }
            }
            catch (WebUiHelperException e)
            {
                throw new WebUiException(
                          $"Ошибка в типе {nameof(ReportModelCreator)} в методе {nameof(CreateByTypeReportModel)}",
                          e);
            }
            var reportModel = GetByTypeOfFlowReportModel(model, user, page, tempList);

            return(reportModel);
        }
示例#4
0
 public ActionResult GetTypeOfFlowReport(TempReportModel model, WebUser user, int page = 1)
 {
     try
     {
         var reportModel = _reportModelCreator.CreateByTypeReportModel(model, user, page);
         ViewBag.PageCreator = _pageCreator;
         return(PartialView("_GetByTypeOfFlowReport", reportModel));
     }
     catch (WebUiException e)
     {
         throw new WebUiException($"Ошибка в контроллере {nameof(ReportController)} в методе {nameof(GetTypeOfFlowReport)}",
                                  e);
     }
 }