Exemplo n.º 1
0
        private static void ConfigureLinqForContext(DbContext context, string configName, out Type contextType)
        {
            contextType = context.GetType();
            var nameSpace    = contextType.Namespace;
            var assemblyName = contextType.Assembly.FullName;

            NativeScriptHelper.AddReference(configName, assemblyName);
            NativeScriptHelper.AddUsing(configName, nameSpace);
        }
Exemplo n.º 2
0
 static ContextExtensions()
 {
     NativeScriptHelper.AddReference(RosFkConfig, "--ROSLYN--");
     NativeScriptHelper.AddReference(RosFkConfig, "ITVComponents.WebCoreToolkit.EntityFramework");
     NativeScriptHelper.AddUsing(RosFkConfig, "ITVComponents.WebCoreToolkit.EntityFramework.Models");
     NativeScriptHelper.AddUsing(RosFkConfig, "ITVComponents.WebCoreToolkit.EntityFramework.Helpers");
     NativeScriptHelper.AddUsing(RosFkConfig, "ITVComponents.Helpers");
     NativeScriptHelper.RunLinqQuery(RosFkConfig, new[] { "Fubar" }, "Fubar", "return null;", new Dictionary <string, object>());
     NativeScriptHelper.AddReference(RosDiagConfig, "--ROSLYN--");
     NativeScriptHelper.AddReference(RosDiagConfig, "ITVComponents.WebCoreToolkit.EntityFramework");
     NativeScriptHelper.AddReference(RosDiagConfig, "ITVComponents.Decisions.Entities");
     NativeScriptHelper.AddUsing(RosDiagConfig, "ITVComponents.WebCoreToolkit.EntityFramework.Models");
     NativeScriptHelper.AddUsing(RosDiagConfig, "ITVComponents.Decisions");
     NativeScriptHelper.AddUsing(RosDiagConfig, "ITVComponents.Decisions.Entities.Results");
     NativeScriptHelper.RunLinqQuery(RosDiagConfig, new[] { "Fubar" }, "Fubar", "return null;", new Dictionary <string, object>());
 }
Exemplo n.º 3
0
        public void NativeTests()
        {
            var test = new TestClass();

            NativeScriptHelper.AddReference("DUMMY", "--ROSLYN--");
            ExpressionParser.Parse("TestString = `E(\"A\" as hicks -> DUMMY)::\"return Global.GoFuckYourself();\" with {GoFuckYourself:function(){return \"hallo\";}}", test, s => DefaultCallbacks.PrepareDefaultCallbacks(s.Scope, s.ReplSession));
            Assert.AreEqual(test.TestString, "hallo");
            ExpressionParser.Parse(@"TestString = `E(#DUMMY)::@#
int a = -1;
for (int i = 0; i< 100000; i++){
    a += 10;
    a = a%71;
}

return Global.GoFuckYourself(a);
# with {GoFuckYourself:function(val){return 'System.String'.Format(""velo{0}"",val);}}", test, s => DefaultCallbacks.PrepareDefaultCallbacks(s.Scope, s.ReplSession));
            Assert.AreEqual(test.TestString, "velo35");
        }
Exemplo n.º 4
0
        private static string CreateWhereClause(Type tableType, IDictionary <string, object> postedFilter, out string filterDecl)
        {
            var retVal = new StringBuilder();
            var availableFilterValues = tableType.GetProperties().Where(n => n.PropertyType == typeof(string) || n.PropertyType.IsValueType).ToArray();
            var filterDl = new StringBuilder();

            if (postedFilter != null && availableFilterValues.Length != 0)
            {
                var generalWhere  = new StringBuilder();
                var generalFilter = "";
                var specialWhere  = new StringBuilder();
                if (postedFilter.ContainsKey("Filter") && postedFilter["Filter"] != null)
                {
                    generalFilter = ".Contains(Filter)";
                    filterDl.Append(@"string Filter = Global.Filter;
");
                }

                for (var index = 0; index < availableFilterValues.Length; index++)
                {
                    var prop = availableFilterValues[index];
                    if (postedFilter.ContainsKey(prop.Name))
                    {
                        var typ   = NativeScriptHelper.GetFriendlyName(prop.PropertyType);
                        var cvTyp = "";
                        var attr  = (NullSensitiveFkQueryExpressionAttribute)Attribute.GetCustomAttributes(prop, typeof(NullSensitiveFkQueryExpressionAttribute)).FirstOrDefault();
                        var defaultNullSensitiveQuery = attr?.GetQueryPart($"t.{prop.Name}", $"Var{index}");
                        if (prop.PropertyType != typeof(string))
                        {
                            if (!typ.EndsWith("?"))
                            {
                                typ += "?";
                            }

                            cvTyp = typ.Substring(0, typ.Length - 1);
                            filterDl.Append($@"{typ} Var{index} = ValueConvertHelper.TryChangeType<{cvTyp}>((string)Global.{prop.Name});
bool Var{index}NullExpected = Global.{prop.Name}==""##NULL##"";
");
                            var nsq = defaultNullSensitiveQuery ?? $"t.{prop.Name} == Var{index}";
                            specialWhere.Append($"{(specialWhere.Length != 0 ? " && " : "")}(Var{index} == null && !Var{index}NullExpected || ({nsq}))");
                        }
                        else
                        {
                            filterDl.Append($@"string Var{index} = (string)Global.{prop.Name};
bool Var{index}NullExpected = Global.{prop.Name}==""##NULL##"";
");
                            var nsq = defaultNullSensitiveQuery ?? $"t.{prop.Name}.Contains(Var{index})";
                            specialWhere.Append($"{(specialWhere.Length != 0 ? " && " : "")}(Var{index}NullExpected && t.{prop.Name} == null || !Var{index}NullExpected && ({nsq}))");
                        }
                    }
                    else if (!string.IsNullOrEmpty(generalFilter))
                    {
                        if (prop.PropertyType == typeof(string))
                        {
                            generalWhere.Append($"{(generalWhere.Length != 0 ? " || " : "")}t.{prop.Name}{generalFilter}");
                        }
                        else
                        {
                            var typ   = NativeScriptHelper.GetFriendlyName(prop.PropertyType);
                            var cvTyp = "";
                            if (!typ.EndsWith("?"))
                            {
                                typ += "?";
                            }

                            cvTyp = typ.Substring(0, typ.Length - 1);
                            filterDl.Append($@"{typ} Var{index} = ValueConvertHelper.TryChangeType<{cvTyp}>(Filter);
");
                            generalWhere.Append($"{(generalWhere.Length != 0 ? " || " : "")}(Var{index} != null && t.{prop.Name} == Var{index})");
                        }
                    }
                }

                retVal.Append(generalWhere);
                if (retVal.Length != 0)
                {
                    retVal.Insert(0, "(");
                    retVal.Append(")");
                }

                if (specialWhere.Length != 0)
                {
                    if (retVal.Length != 0)
                    {
                        retVal.Append(" && ");
                    }
                    retVal.Append(specialWhere);
                }

                if (retVal.Length != 0)
                {
                    retVal.Insert(0, "where ");
                }
            }

            filterDecl = filterDl.ToString();
            return(retVal.ToString());
        }
Exemplo n.º 5
0
 private static IEnumerable RunQuery(DbContext context, string query, string configName, IDictionary <string, object> data)
 {
     return((IEnumerable)NativeScriptHelper.RunLinqQuery(configName, context, "Db", query, data ?? new Dictionary <string, object>()));
 }