Beispiel #1
0
        public DataFilter <TBaseModel> GetDataFilterBase <TBaseModel>(
            Dictionary <string, string> fieldMap = null, Dictionary <string, string> fieldMapOr = null)
            where TBaseModel : BaseModel
        {
            DataFilter <TBaseModel> filter = new DataFilter <TBaseModel>();

            filter.PageSize         = pageSize;
            filter.Page             = page;
            filter.OrderByDirection = orderByDirection != null && orderByDirection.ToLower().Equals("desc") ? "DESC" : "ASC";

            if (fieldMap != null)
            {
                fields.ForEach(field =>
                {
                    if (fieldMap.ContainsKey(field.field))
                    {
                        filter.AddParam(fieldMap[field.field], field.type, field.argument);
                    }
                });
            }

            if (fieldMapOr != null)
            {
                fieldMapOr.ToList().ForEach(map =>
                {
                    DataFilterGroup group = new DataFilterGroup(FilterGroupType.Or);
                    fields.Where(x => x.field == map.Key).ToList().ForEach(field =>
                    {
                        group.AddParam(map.Value, field.type, field.argument);
                    });
                    filter.AddGroup(group);
                });
            }

            return(filter);
        }