コード例 #1
0
        /// <summary>
        /// Génère le code des classes.
        /// </summary>
        /// <param name="rootNamespace">Namespace de l'application.</param>
        /// <param name="parameters">Paramètres génération C#</param>
        /// <param name="modelRootList">Liste des modeles.</param>
        public static void Generate(string rootNamespace, CSharpParameters parameters, ICollection <ModelRoot> modelRootList)
        {
            if (modelRootList == null)
            {
                throw new ArgumentNullException(nameof(modelRootList));
            }

            new DbContextGenerator(rootNamespace, parameters).Generate(modelRootList);

            var classGenerator = new CSharpClassGenerator(rootNamespace, parameters);

            foreach (ModelRoot model in modelRootList)
            {
                if (model.Namespaces != null && model.Namespaces.Values.Count > 0)
                {
                    foreach (ModelNamespace ns in model.Namespaces.Values)
                    {
                        if (!Directory.Exists(ns.Name))
                        {
                            var directoryForModelClass = GetDirectoryForModelClass(parameters.OutputDirectory, ns.HasPersistentClasses, model.Name, ns.Name);
                            var projectDirectory       = GetDirectoryForProject(parameters.OutputDirectory, ns.HasPersistentClasses, model.Name, ns.Name);
                            var csprojFileName         = Path.Combine(projectDirectory, model.Name + "." + ns.Name + ".csproj");

                            foreach (ModelClass item in ns.ClassList)
                            {
                                var currentDirectory = GetDirectoryForModelClass(parameters.OutputDirectory, item.DataContract.IsPersistent, model.Name, item.Namespace.Name);
                                Directory.CreateDirectory(currentDirectory);
                                classGenerator.Generate(item, ns);
                            }
                        }
                    }
                }
            }

            new ReferenceAccessorGenerator(rootNamespace, parameters).Generate(modelRootList);
        }
コード例 #2
0
 public CSharpClassGenerator(string rootNamespace, CSharpParameters parameters)
 {
     _rootNamespace = rootNamespace;
     _parameters    = parameters;
 }
コード例 #3
0
 public DbContextGenerator(string rootNamespace, CSharpParameters parameters)
 {
     _rootNamespace = rootNamespace;
     _parameters    = parameters;
 }