Ejemplo n.º 1
0
        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;
            }}
");
        }
Ejemplo n.º 3
0
        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()));
        }
Ejemplo n.º 4
0
        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())));
        }