Пример #1
0
        public static GeneratedModel Create(CodeGenerationOptions options)
        {
            GeneratedModel model = new GeneratedModel();

            foreach (var kind in options.Kinds)
            {
                //if (kind == Kind.Context || kind == Kind.Supervisor)
                //    continue;

                GeneratedFile modelClassFile          = FileFactory.Create(options, FileType.ModelClass, kind);
                GeneratedFile generatorInterfaceFile  = FileFactory.Create(options, FileType.GeneratorInterface, kind);
                GeneratedFile generatorClassFile      = FileFactory.Create(options, FileType.GeneratorClass, kind);
                GeneratedFile scaffolderInterfaceFile = FileFactory.Create(options, FileType.ScaffolderInterface, kind);
                GeneratedFile scaffolderClassFile     = FileFactory.Create(options, FileType.ScaffolderClass, kind);

                model.Models.Add(modelClassFile);
                model.GeneratorInterfaces.Add(generatorInterfaceFile);
                model.GeneratorClasses.Add(generatorClassFile);
                model.ScaffolderInterfaces.Add(scaffolderInterfaceFile);
                model.ScaffolderClasses.Add(scaffolderClassFile);
            }

            model.ScaffoldedModelClass = FileFactory.Create(options, FileType.ScaffoldedModelClass);
            model.ServicesClassFile    = FileFactory.Create(options, FileType.ServicesClass);
            //model.SupervisorClass = FileFactory.Create(options, FileType.SupervisorClass);
            //model.SupervisorModelClass = FileFactory.Create(options, FileType.SupervisorModelClass);
            //model.SupervisorInterface = FileFactory.Create(options, FileType.SupervisorInterface);
            //model.ContextClass = FileFactory.Create(options, FileType.ContextClass);
            //model.ContextInterface = FileFactory.Create(options, FileType.ContextInterface);
            //model.ContextModelClass = FileFactory.Create(options, FileType.ContextModelClass);
            return(model);
        }
Пример #2
0
 public bool DuplicateProperty(string propName, GeneratedModel model)
 {
     if (model.Properties.Any(x => x.Name.ToLower().Equals(propName.ToLower())))
     {
         return(true);
     }
     return(false);
 }
Пример #3
0
        public ActionResult EditModel(int id)
        {
            var model = new GeneratedModel();

            if (id > -1)
            {
                model = repo.GetGeneratedModel().FirstOrDefault(x => x.ID == id);
            }
            return(View(model));
        }
Пример #4
0
        public bool DuplicateProperties(GeneratedModel model, GeneratedModel parent, List <string> dupes)
        {
            var mod         = model;
            var isDuplicate = false;
            var modelProps  = model.Properties.ToList();
            var parentProps = apiHelper.AllProperties(parent);

            dupes = modelProps.Select(x => x.Name.ToLower()).Intersect(parentProps.Select(x => x.Name.ToLower())).ToList();
            if (dupes.Any())
            {
                isDuplicate = true;
            }
            return(isDuplicate);
        }
Пример #5
0
        public List <GeneratedProperty> AllProperties(GeneratedModel model)
        {
            var result = new List <GeneratedProperty>();
            var mod    = model;

            do
            {
                result.AddRange(mod.Properties.ToList());
                if (!string.IsNullOrEmpty(mod.Inherits))
                {
                    mod = repo.GetGeneratedModel().Where(x => x.IFullName == mod.Inherits).SingleOrDefault();
                }
                else
                {
                    mod = null;
                }
            } while (mod != null);
            return(result);
        }
Пример #6
0
        public ActionResult EditModel(GeneratedModel gm)
        {
            var success = false;
            var message = string.Empty;
            var _id     = -1;

            try {
                if (gm.ID < 1)
                {
                    repo.AddGeneratedModel(gm);
                }
                else
                {
                    var mod = repo.GetGeneratedModel().Where(x => x.ID == gm.ID).FirstOrDefault();
                    mod.Name     = gm.Name;
                    mod.Inherits = gm.Inherits;
                    if (!string.IsNullOrEmpty(mod.Inherits))
                    {
                        var parentType = repo.GetGeneratedModel().Where(x => x.IFullName.Equals(mod.Inherits)).FirstOrDefault();
                        if (parentType != null)
                        {
                            var dupes = new List <string>();
                            if (DuplicateProperties(mod, parentType, dupes))
                            {
                                throw new Exception("following properties already exist: " + string.Join(", ", dupes));
                            }
                        }
                    }
                }
                repo.SaveChanges();
                _id = gm.ID;
            }catch (Exception ex) {
                message = ex.Message;
            }

            return(Json(new{ success = true, message = message, id = _id }));
        }
Пример #7
0
        public static void SaveModel(GeneratedModel model)
        {
            foreach (var file in model.Models)
            {
                FileWriter.WriteFile(file);
            }

            foreach (var file in model.GeneratorInterfaces)
            {
                FileWriter.WriteFile(file);
            }

            foreach (var file in model.GeneratorClasses)
            {
                FileWriter.WriteFile(file);
            }

            foreach (var file in model.ScaffolderInterfaces)
            {
                FileWriter.WriteFile(file);
            }

            foreach (var file in model.ScaffolderClasses)
            {
                FileWriter.WriteFile(file);
            }

            FileWriter.WriteFile(model.ScaffoldedModelClass);
            FileWriter.WriteFile(model.ServicesClassFile);
            //FileWriter.WriteFile(model.SupervisorClass);
            //FileWriter.WriteFile(model.SupervisorInterface);
            //FileWriter.WriteFile(model.SupervisorModelClass);
            //FileWriter.WriteFile(model.ContextClass);
            //FileWriter.WriteFile(model.ContextInterface);
            //FileWriter.WriteFile(model.ContextModelClass);
        }
Пример #8
0
 public void DeleteGeneratedModel(GeneratedModel gm)
 {
     throw new NotImplementedException();
     //repo.GeneratedModel.Remove(gm);
 }
Пример #9
0
 public void AddGeneratedModel(GeneratedModel gm)
 {
     throw new NotImplementedException();
     //repo.GeneratedModel.Add(gm);
 }