private static string MemberFunctionsSnippet(QueryWithParameterInfo info)
        {
            return string.Format(
            @"        public IQueryable<global::{0}.{1}> Query({2} queryParameter)
            {{
            {4}
            Func<{2}, IQueryable<global::{0}.{1}>> queryFunction = {3};
            var queryResult = queryFunction(queryParameter);
            {5}
            return queryResult;
            }}

            ",
                info.DataStructure.Module.Name,
                info.DataStructure.Name,
                info.ParameterType,
                info.QueryImplementation.Trim(),
                BeforeQueryTag.Evaluate(info),
                AfterQueryTag.Evaluate(info));
        }
 private static string RegisterRepository(QueryWithParameterInfo info)
 {
     return string.Format(@"builder.RegisterType<{0}._Helper.{1}_Repository>().As<{2}>().InstancePerLifetimeScope();
     ", info.DataStructure.Module.Name, info.DataStructure.Name, InterfaceName(info));
 }
 private static string InterfaceName(QueryWithParameterInfo info)
 {
     return string.Format("IQueryableRepository<global::{0}.{1}, {2}>", info.DataStructure.Module.Name, info.DataStructure.Name, info.ParameterType);
 }