コード例 #1
0
ファイル: Any.Odcm.cs プロジェクト: tonycrider/Vipr
        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);
        }
コード例 #2
0
 private static IEnumerable <Feature> ForOdcmClassService(OdcmServiceClass odcmClass, OdcmModel model)
 {
     return(new[]
     {
         Feature.ForOdcmClassService(odcmClass, model),
     });
 }
コード例 #3
0
 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),
     });
 }
コード例 #4
0
 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()
     }));
 }
コード例 #5
0
        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));
        }
コード例 #6
0
ファイル: Class.cs プロジェクト: vikyding/Vipr
 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)
     });
 }
コード例 #7
0
 public static IEnumerable <Class> ForOdcmClassService(OdcmServiceClass odcmClass, OdcmModel model)
 {
     return(new[] { Class.ForEntityContainer(model, odcmClass) });
 }