protected string GetFilterPredicate(List <FilterValue> filterValues, string operatorFilter = "AND") { var op = operatorFilter == "OR" ? "|| " : "&& "; var builderPredicate = new StringBuilder(); if (filterValues != null) { foreach (var filterValue in filterValues) { var filter = CoreFilterDetailDao.GetCoreFilterDetail(filterValue.IdFilter); var filterTable = string.IsNullOrEmpty(filter.Table) ? "" : filter.Table + "."; switch (filterValue.Criteria) { case "Contains": builderPredicate.Append(op + filterTable + filter.Property + "."); builderPredicate.Append(filterValue.Criteria + "(\""); builderPredicate.Append(filterValue.Value + "\")"); break; case "NotContains": builderPredicate.Append(op + "!" + filterTable + filter.Property + "."); builderPredicate.Append("Contains(\""); builderPredicate.Append(filterValue.Value + "\")"); break; default: if (filterValue.NameFilter.IndexOf("Id", StringComparison.Ordinal) >= 0) { var fs = $" == \"{filterValue.Value}\" "; builderPredicate.Append(op + filterTable + filter.Property + fs); } else { builderPredicate.Append(op + filterTable + filter.Property + " "); builderPredicate.Append(filterValue.Criteria + " \""); builderPredicate.Append(filterValue.Value + "\""); } break; } } } return(builderPredicate.ToString()); }
protected List <FilterValue> AddHiddenFilter(string key, string value, List <FilterValue> filters, string filterName) { var filter = CoreFilterDao.GetCoreFilter(filterName); if (filter != null) { var appFilter = CoreFilterDetailDao.GetCoreFilterDetail(filter.Id, key); if (!filters.Where(filterValue => filterValue.IdFilter == appFilter.Id).ToList().Any()) { filters.Add(new FilterValue { Value = value, Criteria = "==", IdFilter = appFilter.Id, NameFilter = key }); } } return(filters); }
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); }