private static string GetDynamicWhereClause(CustomReportFilterDTO filter, CustomReportPredefinedFieldDTO field, int index, ref int offset)
        {
            var operation = (FilterOperation)Enum.Parse(typeof(FilterOperation), filter.Operation);

            switch (operation)
            {
            case
                FilterOperation.ContainsAny:
                //todo split into array
                var arr = filter.Value.Split(' ', ',', ';').ToList();
                offset += arr.Count() - 1;
                var resArr = arr.Select(x => String.Format("({0}.{1}.{2}(@{3}))", field.EntityName, field.ColumnName, FilterOperation.Contains, index + arr.IndexOf(x)));
                return("(" + String.Join(" || ", resArr) + ")");

            case FilterOperation.Equals:
                return(String.Format("({0}.{1} == (@{2}))", field.EntityName, field.ColumnName, index));

            case FilterOperation.Contains:
            case FilterOperation.StartsWith:
            case FilterOperation.EndsWith:
                return(String.Format("({0}.{1}.{2}(@{3}))", field.EntityName, field.ColumnName, filter.Operation, index));    //tolower

            case FilterOperation.NotEquals:
            case FilterOperation.NotContains:
                return(String.Format("(!{0}.{1}.{2}(@{3}))", field.EntityName, field.ColumnName, filter.Operation.ToString().Replace("Not", ""), index));

            case FilterOperation.Greater:
                return(String.Format("({0}.{1} > @{2})", field.EntityName, field.ColumnName, index));

            case FilterOperation.Less:
                return(String.Format("({0}.{1} < @{2})", field.EntityName, field.ColumnName, index));
            }

            throw new NotImplementedException("Operation not implemented");
        }
Пример #2
0
        private static CustomReportFieldViewModel GetField(string name, DisplayInGridAttribute atr, CustomReportFieldAttribute exc)
        {
            var dto = new CustomReportPredefinedFieldDTO()
            {
                EntityName = exc.EntityName ?? "", ColumnName = exc.ColumnName ?? "", DataType = exc.DataType, Width = atr == null ? exc.Width : atr.Width, Title = atr == null ? exc.Title : atr.Title, Name = name
            };

            var res = new CustomReportFieldViewModel(dto);

            return(res);
        }
Пример #3
0
 public CustomReportFieldViewModel(CustomReportPredefinedFieldDTO f, long fieldId = 0)
 {
     Id = fieldId;
     CustomReportPredefinedFieldId = f.Id;
     ColumnName = f.ColumnName;
     EntityName = f.EntityName;
     Title      = f.Title;
     Width      = f.Width.HasValue ? f.Width.Value : 100;
     FullName   = f.Name;
     DataType   = f.DataType;
     Format     = f.DataType == "datetime" ? "{0:MM.dd.yyyy HH:mm}" : "";
 }