Example #1
0
        private void ImplementGetValuesMethod(IClassBuilder entityClass, IEnumerable <PropertyInfo> entityProperties, PropertyInfo pkProperty)
        {
            var method = entityClass.ImplementsMethod(typeof(IEntity).GetMethod(nameof(IEntity.GetValues))).WithModifier("public");

            method.Body.Write("yield return ")
            .InvokeConstructor(
                typeof(EntityColumnValue),
                inv =>
                inv.WithParam(p => p.String(pkProperty.Name))
                .WithParam(p => p.Write(true))
                .WithParam(p => p.Write(pkProperty.Name)))
            .EndStatement();

            foreach (var prop in entityProperties)
            {
                method.Body.Write("yield return ")
                .InvokeConstructor(
                    typeof(EntityColumnValue),
                    inv =>
                    inv.WithParam(p => p.String(prop.Name))
                    .WithParam(p => p.Write(false))
                    .WithParam(p => p.Write(prop.Name)))
                .EndStatement();
            }
        }
Example #2
0
 private void DefaultImplementMethod(IClassBuilder cls, MethodInfo method)
 {
     cls.ImplementsMethod(method)
     .Body.Write("throw new ")
     .Write(typeof(NotImplementedException))
     .Write("()")
     .EndStatement();
 }
Example #3
0
            protected override bool ImplementMethod(IClassBuilder impl, MethodInfo method, INamedReference serviceLocatorField)
            {
                impl.ImplementsMethod(method)
                .WithModifier("public")
                .Body.Write("return ")
                .Write("\"")
                .Write(method.Name)
                .Write("\"")
                .EndStatement();

                return(true);
            }
Example #4
0
        private void ImplementGetSaveMethodTypeMethod(IClassBuilder entityClass, PropertyInfo pkProperty)
        {
            var method =
                entityClass.ImplementsMethod(typeof(IEntity).GetMethod(nameof(IEntity.GetSaveMethodType)))
                .WithModifier("public");

            if (!PkHandlingHelper.IsPkAutogenerated(pkProperty))
            {
                method.Body.Write("return ")
                .Write(typeof(SaveMethodType))
                .Write(".")
                .Write(nameof(SaveMethodType.Merge))
                .EndStatement();

                return;
            }

            method.Body.Write("return ").Write(pkProperty.Name).Write(" == ").Write("default(").Write(pkProperty.PropertyType).Write(") ?")
            .Write(typeof(SaveMethodType)).Write(".").Write(nameof(SaveMethodType.Insert)).Write(" : ")
            .Write(typeof(SaveMethodType)).Write(".").Write(nameof(SaveMethodType.Update)).EndStatement();
        }