private string GeenerateFilterByCode(FilterByInfo info) { string filterName = info.Parameter.IndexOf('.') == -1 ? info.Source.Module.Name + "." + info.Parameter : info.Parameter; return(string.Format( @"{{ ""filterName"": ""{0}"", ""filterType"": ""filterBy"" }}, ", filterName)); }
private static string TryExtractShortName(string typeName, FilterByInfo filter) { var removablePrefixes = _defaultNamespaces.Concat(new[] { filter.Source.Module.Name + "." }); var removablePrefix = removablePrefixes.FirstOrDefault(prefix => typeName.StartsWith(prefix)); if (removablePrefix != null) { return(typeName.Substring(removablePrefix.Length)); } return(null); }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { FilterByInfo info = (FilterByInfo)conceptInfo; if (info.Parameter.Split('.').Length > 2) { return; // ignore internal filters } if (info.Parameter.EndsWith("Filter") && info.Parameter.Contains("_")) { return; // ignore filters by InvalidData and similar } codeBuilder.InsertCode(FilterBySnippet(info), DataStructureCodeGenerator.FiltersTag, info.Source); }
private static string FilterImplementationSnippet(FilterByInfo info) { return(string.Format( @" public global::{0}[] Filter({1} filter_Parameter) {{ Func<Common.DomRepository, {1}{3}, {0}[]> filter_Function = {2}; return filter_Function(_domRepository, filter_Parameter{4}); }} ", info.Source.GetKeyProperties(), info.Parameter, info.Expression, AdditionalParametersTypeTag.Evaluate(info), AdditionalParametersArgumentTag.Evaluate(info))); }
private static string FilterBySnippet(FilterByInfo info) { if (ComposableFilterRepository.CompareExist(info.Parameter)) { if (info.Parameter.Contains(".")) { string result = string.Format(@"{{ name:"" {0} "", filter: ""{1}"", isComposableFilter: false }}, ", info.Parameter.Split('.')[1], info.Parameter); return(result); } else { string result = string.Format(@"{{ name:"" {0} "", filter: ""{0}"", isComposableFilter: false }}, ", info.Parameter); return(result); } } else { return(""); } }
private static string CodeSnippet(FilterByInfo info) { var fullTypeName = info.Parameter; if (System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(fullTypeName)) { fullTypeName = info.Source.Module.Name + "." + fullTypeName; } string result = String.Format( @"Tuple.Create(""{0}"", typeof({0})), ", fullTypeName); var shortName = TryExtractShortName(fullTypeName, info); if (shortName != null) { result += String.Format( @"Tuple.Create(""{0}"", typeof({1})), ", shortName, fullTypeName); } return(result); }