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"); }
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); }
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}" : ""; }