public static OdcmClass EntityOdcmClass(OdcmNamespace odcmNamespace, Action <OdcmClass> config = null) { var retVal = new OdcmClass(Any.CSharpIdentifier(), odcmNamespace.Name, OdcmClassKind.Entity); retVal.Properties.AddRange(Any.Sequence(i => Any.PrimitiveOdcmProperty(p => p.Class = retVal))); retVal.Key.AddRange(retVal.Properties.RandomSubset(2).Select(p => p.Field)); if (odcmNamespace.Classes.Any(c => c.Kind == OdcmClassKind.Complex)) { retVal.Properties.AddRange(Any.Sequence(i => Any.OdcmProperty(p => { p.Class = retVal; p.Type = odcmNamespace.Classes.Where(c => c.Kind == OdcmClassKind.Complex).RandomElement(); }))); } if (config != null) { config(retVal); } retVal.Methods.AddRange(Any.Sequence(s => Any.OdcmMethod())); return(retVal); }
private static void EntityOrMediaOdcmClass(OdcmNamespace odcmNamespace, Action <OdcmEntityClass> config, OdcmEntityClass retVal) { retVal.Properties.AddRange(Any.Sequence(i => Any.PrimitiveOdcmProperty(p => p.Class = retVal))); retVal.Key.AddRange(retVal.Properties.RandomSubset(2)); if (odcmNamespace.Classes.Any(c => c.Kind == OdcmClassKind.Complex)) { retVal.Properties.AddRange(Any.Sequence(i => Any.OdcmProperty(p => { p.Class = retVal; p.Type = odcmNamespace.Classes.Where(c => c.Kind == OdcmClassKind.Complex).RandomElement(); }))); } retVal.Properties.AddRange(Any.Sequence(i => Any.OdcmEntityProperty(retVal, p => { p.Class = retVal; }))); retVal.Properties.AddRange(Any.Sequence(i => Any.OdcmEntityProperty(retVal, p => { p.Class = retVal; p.IsCollection = true; }))); if (config != null) { config(retVal); } retVal.Methods.AddRange(Any.Sequence(s => Any.OdcmMethod())); }
private static OdcmClass ComplexOdcmType(OdcmNamespace odcmNamespace, Action <OdcmClass> config = null) { var retVal = new OdcmClass(Any.CSharpIdentifier(), odcmNamespace.Name, OdcmClassKind.Complex); retVal.Properties.AddRange(Any.Sequence(i => Any.PrimitiveOdcmProperty(p => p.Class = retVal))); if (config != null) { config(retVal); } return(retVal); }