private static string GetFilterExpression(FilterByLinkedItemsInfo info) { return string.Format(@"(repository, parameter) => {{ var baseDataSourceRepositiory = repository.{3}.{4} as IFilterRepository<{2}, {3}.{4}>; if (baseDataSourceRepositiory == null) {{ const string userDescription = {6}; throw new Rhetos.UserException(""Invalid use of "" + userDescription + "". Filter's base data source '{3}.{4}' does not implement a filter for '{2}'.""); }} Guid[] references = baseDataSourceRepositiory.Filter(parameter).Select(item => item.{5}ID) .Where(reference => reference.HasValue).Select(reference => reference.Value) .Distinct().ToArray(); {0}.{1}[] result = repository.{0}.{1}.Filter(references); Rhetos.Utilities.Graph.SortByGivenOrder(result, references, item => item.ID); return result; }} ", info.Source.Module.Name, info.Source.Name, info.Parameter, info.ReferenceToMe.DataStructure.Module.Name, info.ReferenceToMe.DataStructure.Name, info.ReferenceToMe.Name, CsUtility.QuotedString(info.GetUserDescription())); }
private static string GetFilterExpression(FilterByLinkedItemsInfo info) { return($@"(repository, parameter) => {{ var baseRepositiory = repository.{info.ReferenceToMe.DataStructure.FullName}; Guid[] references = baseRepositiory.Load(parameter).Select(item => item.{info.ReferenceToMe.Name}ID) .Where(reference => reference.HasValue).Select(reference => reference.Value) .Distinct().ToArray(); {info.Source.FullName}[] result = repository.{info.Source.FullName}.Load(references); Rhetos.Utilities.Graph.SortByGivenOrder(result, references, item => item.ID); return result; }} "); }
private static string GetFilterExpression(FilterByLinkedItemsInfo info) { return string.Format(@"(repository, parameter) => {{ var baseRepositiory = repository.{3}.{4}; Guid[] references = baseRepositiory.Filter(parameter).Select(item => item.{5}ID) .Where(reference => reference.HasValue).Select(reference => reference.Value) .Distinct().ToArray(); {0}.{1}[] result = repository.{0}.{1}.Filter(references); Rhetos.Utilities.Graph.SortByGivenOrder(result, references, item => item.ID); return result; }} ", info.Source.Module.Name, info.Source.Name, info.Parameter, info.ReferenceToMe.DataStructure.Module.Name, info.ReferenceToMe.DataStructure.Name, info.ReferenceToMe.Name, CsUtility.QuotedString(info.GetUserDescription())); }
private static string GetFilterExpression(FilterByLinkedItemsInfo info) { return(string.Format(@"(repository, parameter) => {{ var baseRepositiory = repository.{3}.{4}; Guid[] references = baseRepositiory.Filter(parameter).Select(item => item.{5}ID) .Where(reference => reference.HasValue).Select(reference => reference.Value) .Distinct().ToArray(); {0}.{1}[] result = repository.{0}.{1}.Filter(references); Rhetos.Utilities.Graph.SortByGivenOrder(result, references, item => item.ID); return result; }} ", info.Source.Module.Name, info.Source.Name, info.Parameter, info.ReferenceToMe.DataStructure.Module.Name, info.ReferenceToMe.DataStructure.Name, info.ReferenceToMe.Name, CsUtility.QuotedString(info.GetUserDescription()))); }