public override void CreateCode() { StringBuilder result = new StringBuilder(); result.AppendLine(CodeContent); try { if (null == ProjectContainer.DomainEntity) { throw new Exception("Entity2Code DomainEntity Project Can not be Find"); } string path = Path.Combine(ProjectContainer.DomainEntity.ToDirectory(), _entity.Entity + ".cs"); if (File.Exists(path) == false) { throw new Exception("Entity2Code DomainEntity Project Can not Find ProjectItem " + _entity.Entity + ".cs"); } if (SolutionCommon.infrastryctType == InfrastructType.DbFirst) { using (StreamReader reader = new StreamReader(path)) { while (reader.Peek() != -1) { string line = reader.ReadLine(); if (line.IndexOf("get") != -1 && line.IndexOf("set") != -1 && line.IndexOf("virtual") == -1) { result.AppendLine(" [DataMember]"); result.AppendLine(line); } } } } else { Table tb = CodeFirstLogic.GetTables().GetTable(_entity.Entity, CodeFirstTools.SchemaName); foreach (Column clm in tb.Columns) { result.AppendLine(" [DataMember]"); result.AppendLine(string.Format(" public {0}{1} {2} {3}", clm.PropertyType, CodeFirstTools.CheckNullable(clm), clm.PropertyName, "{get; set; }")); } } result.AppendLine(" }"); result.AppendLine("}"); string targetPath = ModelPathConverter.GetCodePath(_consType, IsOverWrite, _entity); using (FileStream create = new FileStream(targetPath, FileMode.OpenOrCreate)) { byte[] buffer = Encoding.Default.GetBytes(result.ToString()); create.Write(buffer, 0, buffer.Length); } BuildResult = ProjectContainer.Data2Object.AddFromFile(targetPath); base.CreateCode(); } catch (Exception ex) { MsgBoxHelp.ShowError("创建代码出现异常:", ex); } }
/// <summary> /// 创建DTO实体的代码 /// </summary> /// <param name="overWrite">是否重写</param> public static void Create(bool overWrite) { if (ProjectContainer.Data2Object == null) { ProjectContainer.Data2Object = SolutionCommon.Dte.AddClassLibrary(SolutionCommon.Data2Object); } else { if (overWrite) { ProjectContainer.Data2Object.Delete(); ProjectContainer.Data2Object = SolutionCommon.Dte.AddClassLibrary(SolutionCommon.Data2Object); } } List <TemplateEntity> entitys = DomainEntityLogic.GetEntitys(false); CodeBuilderContainer.ProfileBuilder.Clear(); for (int i = 0; i < entitys.Count; i++) { // _work.ReportProgress((int)((i + 1) * 100 / entitys.Length), string.Format("添加实体类-{0}-的代码", fileEntity)); TemplateEntity tmpEntity = entitys[i]; Data2ObjCerateManager codeManager = new Data2ObjCerateManager(ConstructType.Data2Obj, tmpEntity); codeManager.IsOverWrite = overWrite; codeManager.BuildTaget = ProjectContainer.Data2Object; codeManager.CreateCode(); CodeAppendManager appendManager = new CodeAppendManager(ConstructType.Profile, tmpEntity); appendManager.BuildTaget = CodeBuilderContainer.ProfileBuilder; appendManager.CreateCode(); } CodeStaticManager staticManager = new CodeStaticManager(ConstructType.Profile); //Profile ModelPathConverter.GetCodePath(ConstructType.Profile); staticManager.BuildTaget = new StringCodeArgment() { Folder = "Profile", Name = SolutionCommon.ProjectName + "Profile.cs", Target = ProjectContainer.Data2Object }; staticManager.CreateCode(); }
public override void CreateCode() { try { string path = string.Empty; if (null == _entity) { path = ModelPathConverter.GetCodePath(_consType, IsOverWrite); } else { path = ModelPathConverter.GetCodePath(_consType, IsOverWrite, _entity); } using (FileStream create = new FileStream(path, FileMode.OpenOrCreate)) { byte[] buffer = Encoding.Default.GetBytes(CodeContent.ToString()); create.Write(buffer, 0, buffer.Length); } if (null == BuildTaget) { throw new Exception("Entity2Code Code Taget Lost"); } Project prj = BuildTaget as Project; if (null == prj) { throw new Exception("Entity2Code Code Taget Argment Error"); } BuildResult = prj.AddFromFile(path); base.CreateCode(); } catch (Exception ex) { MsgBoxHelp.ShowError("创建代码异常了", ex); } }