public async Task ShowExecutorsPerPageTest()
        {
            //Arrange
            int fakePageNumber = 0;

            string[]        fakeCategories   = null;
            ExecutorDTOPage fakePage         = new ExecutorDTOPage();
            var             iExecutorService = new Mock <IExecutorService>();

            iExecutorService.Setup(x => x.GetExecutorsPerPage(-1, 1, null)).ReturnsAsync(fakePage);

            var iUserActivityService = new Mock <IUserActivityService>();

            ExecutorPageViewModel fakeViewModel = new ExecutorPageViewModel();
            var mapper = new Mock <IMapper>();

            mapper.Setup(x => x.Map <ExecutorPageViewModel>(It.IsAny <ExecutorDTOPage>())).Returns(fakeViewModel);

            var controllerContext = new Mock <ControllerContext>();
            var controllerSession = new Mock <HttpSessionStateBase>();

            controllerContext.Setup(p => p.HttpContext.Session).Returns(controllerSession.Object);

            ExecutorController executorControllerTest = new ExecutorController(iExecutorService.Object,
                                                                               iUserActivityService.Object, mapper.Object);

            executorControllerTest.ControllerContext = controllerContext.Object;

            //Act
            ViewResult view = await executorControllerTest.ShowExecutorsPerPage(fakePageNumber, fakeCategories) as ViewResult;

            //Asert
            Assert.IsNotNull(view);
            Assert.IsNotNull(view.Model);
        }
        public async Task <ExecutorDTOPage> GetExecutorsPerPage(int page, int pageSize, List <Category> categories)
        {
            List <int> categoriesValues = null;

            if (categories != null)
            {
                categoriesValues = new List <int>();
                foreach (Category category in categories)
                {
                    categoriesValues.Add((int)category);
                }
            }

            ExecutorPage executorsSinglePageModel = await _database.Executors.GetExecutorsPerPage(page, pageSize, categoriesValues);

            ExecutorDTOPage executorsDTOSinglePageModel = _mapper.Map <ExecutorDTOPage>(executorsSinglePageModel);

            executorsDTOSinglePageModel.Page     = ++page;
            executorsDTOSinglePageModel.PageSize = pageSize;

            return(executorsDTOSinglePageModel);
        }
Beispiel #3
0
        public async Task <ActionResult> ShowExecutorsPerPage(int?page, string[] categories)
        {
            int pageSize         = 4;
            int currentPageIndex = page.HasValue ? page.Value - 1 : 0;

            List <Category> categoriesInEnumEquivalent = null;

            if (categories != null)
            {
                List <string> categoriesCopy = new List <string>(categories);

                if (Session["Language"] != null)
                {
                    string lan = Session["Language"].ToString();

                    if (lan == "en")
                    {
                        categoriesInEnumEquivalent = CategoryExtension.
                                                     TranslateFromEnglishToEnumEquivalents(categoriesCopy.ToArray());
                    }
                    else
                    {
                        categoriesInEnumEquivalent = CategoryExtension.
                                                     TranslateFromRussianToEnumEquivalents(categoriesCopy.ToArray());
                    }
                }
            }

            ExecutorDTOPage executorsDTOSinglePageModel = await _executorService.GetExecutorsPerPage(currentPageIndex, pageSize,
                                                                                                     categoriesInEnumEquivalent);

            ExecutorPageViewModel executorPageViewModel = new ExecutorPageViewModel();

            executorPageViewModel = _mapper.Map <ExecutorPageViewModel>(executorsDTOSinglePageModel);
            executorPageViewModel.AvailableCategories = categories;

            return(View(executorPageViewModel));
        }