示例#1
0
        public async Task <ActionResult> Index(int page = 1)
        {
            IEnumerable <LeaveScheduleDTO> lsDto = await _leaveScheduleService.GetAllAsync();

            lsDto = _leaveScheduleService.GetPage(lsDto, page);     // Paging
            InitializeMapper();
            IEnumerable <LeaveScheduleViewModel> leaveSchedules = Mapper.Map <IEnumerable <LeaveScheduleDTO>, IEnumerable <LeaveScheduleViewModel> >(lsDto);
            LeaveScheduleListViewModel           model          = new LeaveScheduleListViewModel {
                LeaveSchedules = leaveSchedules,
                PageInfo       = _leaveScheduleService.PageInfo
            };

            if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
            {
                _logger.Info("Executed async request");
                var transformModel = new {
                    LeaveSchedules = model.LeaveSchedules.Select(ls => new {
                        ls.Id,
                        ls.Number,
                        ls.Year,
                        DateOfPreparation = ls.DateOfPreparation.ToString("dd MMMM yyyy"),
                        DateOfApproval    = ls.DateOfApproval.HasValue ? ls.DateOfApproval.Value.ToString("dd MMMM yyyy") : ""
                    }).ToArray(),
                    model.PageInfo
                };
                return(Json(transformModel, JsonRequestBehavior.AllowGet));
            }
            _logger.Info("Executed sync request");
            return(View("Index", model));
        }
示例#2
0
        public async Task Index_SyncRequest_RetrievesPageInfoPropertyFromModel()
        {
            Mock <LeaveScheduleService> mock = new Mock <LeaveScheduleService>();

            mock.Setup(m => m.PageInfo).Returns(new PageInfo()
            {
                TotalItems = 9, PageSize = 3, PageNumber = 3
            });
            LeaveScheduleController controller = GetNewLeaveScheduleControllerWithControllerContext(mock.Object);

            ViewResult result = (await controller.Index()) as ViewResult;

            LeaveScheduleListViewModel model = result.ViewData.Model as LeaveScheduleListViewModel;

            Assert.AreEqual(9, model.PageInfo.TotalItems);
            Assert.AreEqual(3, model.PageInfo.PageSize);
            Assert.AreEqual(3, model.PageInfo.PageNumber);
            Assert.AreEqual(3, model.PageInfo.TotalPages);
        }
示例#3
0
        public async Task Index_SyncRequest_RetrievesLeaveSchedulesPropertyFromModel()
        {
            Mock <LeaveScheduleService> mock = new Mock <LeaveScheduleService>();

            mock.Setup(m => m.GetPage(It.IsAny <IEnumerable <LeaveScheduleDTO> >(), It.IsAny <int>())).Returns(new LeaveScheduleDTO[] {
                new LeaveScheduleDTO {
                    Id   = 7,
                    Year = 2018
                }
            });
            LeaveScheduleController controller = GetNewLeaveScheduleControllerWithControllerContext(mock.Object);

            ViewResult result = (await controller.Index()) as ViewResult;

            LeaveScheduleListViewModel model = result.ViewData.Model as LeaveScheduleListViewModel;

            Assert.AreEqual(1, model.LeaveSchedules.Count());
            Assert.AreEqual(7, model.LeaveSchedules.FirstOrDefault().Id);
            Assert.AreEqual(2018, model.LeaveSchedules.FirstOrDefault().Year);
        }