示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }