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); }
public bool DuplicateProperty(string propName, GeneratedModel model) { if (model.Properties.Any(x => x.Name.ToLower().Equals(propName.ToLower()))) { return(true); } return(false); }
public ActionResult EditModel(int id) { var model = new GeneratedModel(); if (id > -1) { model = repo.GetGeneratedModel().FirstOrDefault(x => x.ID == id); } return(View(model)); }
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); }
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); }
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 })); }
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); }
public void DeleteGeneratedModel(GeneratedModel gm) { throw new NotImplementedException(); //repo.GeneratedModel.Remove(gm); }
public void AddGeneratedModel(GeneratedModel gm) { throw new NotImplementedException(); //repo.GeneratedModel.Add(gm); }