public static OdcmServiceClass ServiceOdcmClass(OdcmNamespace odcmNamespace, Action <OdcmServiceClass> config = null) { var retVal = new OdcmServiceClass(Any.CSharpIdentifier(), odcmNamespace); var entities = odcmNamespace.Classes .Where(c => c.Kind == OdcmClassKind.Entity); foreach (var entity in entities) { retVal.Properties.Add(new OdcmProperty(entity.Name) { Class = retVal, Type = entity }); retVal.Properties.Add(new OdcmProperty(entity.Name + "s") { Class = retVal, Type = entity, IsCollection = true }); } retVal.Methods.AddRange(Any.Sequence(s => Any.OdcmMethod())); if (config != null) { config(retVal); } return(retVal); }
private static IEnumerable <Feature> ForOdcmClassService(OdcmServiceClass odcmClass, OdcmModel model) { return(new[] { Feature.ForOdcmClassService(odcmClass, model), }); }
public static Feature ForOdcmClassService(OdcmServiceClass odcmClass, OdcmModel model) { return(new Feature { Classes = global::Vipr.Writer.CSharp.Lite.Classes.ForOdcmClassService(odcmClass, model), Interfaces = global::Vipr.Writer.CSharp.Lite.Interfaces.ForOdcmClassService(odcmClass), }); }
public static IEnumerable <Method> ForEntityContainer(OdcmServiceClass odcmContainer) { return(Methods.ForEntityContainerInterface(odcmContainer) .Concat(Methods.ForContainerAddToCollection(odcmContainer)) .Concat(new Method[] { new ContainerTypeFromNameMethod(odcmContainer), new ContainerNameFromTypeMethod(odcmContainer), new ContainerGetPathMethod(), new ContainerGetUrlMethod() })); }
public static IEnumerable <Feature> ForEntityContainer(OdcmServiceClass odcmClass, OdcmModel model) { switch (odcmClass.Kind) { case OdcmClassKind.Complex: case OdcmClassKind.MediaEntity: case OdcmClassKind.Entity: return(Enumerable.Empty <Feature>()); case OdcmClassKind.Service: return(Features.ForOdcmClassService((OdcmServiceClass)odcmClass, model)); } throw new NotImplementedException(string.Format("OdcmClassKind {0} is not recognized", odcmClass.Kind)); }
internal static Class ForEntityContainer(OdcmModel odcmModel, OdcmServiceClass odcmContainer) { return(new Class { AccessModifier = "public ", Constructors = global::Vipr.Writer.CSharp.Lite.Constructors.ForEntityContainer(odcmContainer), Description = odcmContainer.Description, Fields = global::Vipr.Writer.CSharp.Lite.Fields.ForEntityContainer(odcmContainer), Interfaces = global::Vipr.Writer.CSharp.Lite.ImplementedInterfaces.ForEntityContainer(odcmContainer), Identifier = NamesService.GetEntityContainerTypeName(odcmContainer), NestedClasses = new[] { ForGeneratedEdmModel(odcmModel) }, Methods = global::Vipr.Writer.CSharp.Lite.Methods.ForEntityContainer(odcmContainer), Properties = global::Vipr.Writer.CSharp.Lite.Properties.ForEntityContainer(odcmContainer) }); }
public static IEnumerable <Class> ForOdcmClassService(OdcmServiceClass odcmClass, OdcmModel model) { return(new[] { Class.ForEntityContainer(model, odcmClass) }); }