protected T ConfigurePagination <T>(T entity, int pageIndex, int pageSize, List <FilterValue> filterValues, int countTotal) where T : PaginatedList { entity.PageIndex = pageIndex; entity.TotalPages = (int)Math.Ceiling(countTotal / (double)pageSize); entity.PageSize = pageSize; entity.Properties.FilterValues = filterValues ?? new List <FilterValue>(); entity.Properties.CurrentFilter = JSonConvertUtil.Convert(filterValues); var filterResult = CoreFilterDao.GetCoreFilter(entity.FilterName); if (filterResult != null) { entity.Properties.FilterList = CoreFilterDetailDao.GetCoreFilterDetails(filterResult.Id); } return(entity); }
private List <DashBoardMerchantViewModel> GetMerchantInformation(List <User> merchants) { var listResult = new List <DashBoardMerchantViewModel>(); var filter = _coreFilterDao.GetCoreFilter("DashBoard"); var filterMerchant = _coreFilterDetailDao.GetCoreFilterDetail(filter.Id, "IdMerchant"); foreach (var merchant in merchants) { var filterMerch = new FilterValue() { Criteria = "==", NameFilter = "IdMerchant", Value = merchant.Id.ToString(), IdFilter = filterMerchant.Id }; var filters = new List <FilterValue>() { filterMerch }; var profile = _profileBusiness.GetById(merchant.IdProfile); var taskCount = _taskCampaignDao.GetPaginatedTasksCount(merchant.IdAccount, filters); var statusFilter = _coreFilterDetailDao.GetCoreFilterDetail(filter.Id, "Name", "StatusTask"); var filterStatus = new FilterValue() { Criteria = "==", NameFilter = "IdStatusTask", Value = CTask.StatusImplemented, IdFilter = statusFilter.Id }; filters.Add(filterStatus); var countImplemented = _taskCampaignDao.GetPaginatedTasksCount(merchant.IdAccount, filters); filterStatus.Value = CTask.StatusNotImplemented; filters = new List <FilterValue>() { filterMerch, filterStatus }; var countNotImplemented = _taskCampaignDao.GetPaginatedTasksCount(merchant.IdAccount, filters); filterStatus.Value = CTask.StatusStarted; filters = new List <FilterValue>() { filterMerch, filterStatus }; var countStarted = _taskCampaignDao.GetPaginatedTasksCount(merchant.IdAccount, filters); filterStatus.Value = CTask.StatusPending; filters = new List <FilterValue>() { filterMerch, filterStatus }; var countPending = _taskCampaignDao.GetPaginatedTasksCount(merchant.IdAccount, filters); var model = new DashBoardMerchantViewModel() { Id = merchant.Id, Code = profile.Code, Name = profile.Name, TaskCount = taskCount, PercentImplementedTasks = ((countImplemented * 100) / taskCount) + "%", PercentStartedTasks = ((countStarted * 100) / taskCount) + "%", PercentNotImplementedTasks = ((countNotImplemented * 100) / taskCount) + "%", PercentPendingTasks = ((countPending * 100) / taskCount) + "%" }; listResult.Add(model); } return(listResult); }