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(); } }
private void DefaultImplementMethod(IClassBuilder cls, MethodInfo method) { cls.ImplementsMethod(method) .Body.Write("throw new ") .Write(typeof(NotImplementedException)) .Write("()") .EndStatement(); }
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); }
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(); }