/// <summary> /// 收集相关信息 /// </summary> /// <param name="guid"></param> /// <param name="allowNew">是否需要创建项目</param> /// <returns></returns> public override object[] GetGenerateInfo(string guid, bool allowNew) { //找到项目源 string pid = CdeCmdId.BelongId(guid); Project prjt = TemplateContainer.Resove <Project>(pid); if (prjt == null && allowNew) { string pname = PrjCmdId.FindProjectName(pid); if (pid != "06D57C23-4D51-430D-A8E6-9A19F38390E3") { prjt = CommonContainer.CommonServer.AddClassLibrary(pname); } else { prjt = CommonContainer.CommonServer.AddWebService(pname); } TemplateContainer.Regist(pid, prjt); } string templatePath = Path.Combine(CommonContainer.RootPath, TemplateContainer.Resove <string>(guid)); return(new object[] { guid, pid, prjt, templatePath }); }
/// <summary> /// 转换需要生成的项目项名称(提供关键字容器的解析) /// </summary> /// <param name="guid">项目项ID</param> /// <returns></returns> public static string ConvertFileName(string guid) { string tempName = CdeCmdId.TempFileName(guid); if (tempName == null) { string modelPath = TemplateContainer.Resove <string>(guid); tempName = Path.GetFileNameWithoutExtension(modelPath) + ".cs"; } else { tempName = KeywordContainer.Replace(tempName); } return(tempName); }
/// <summary> /// 创建代码 /// </summary> /// <param name="info"></param> /// <returns></returns> public override bool GenerateCode(object[] info) { try { StringBuilder _tempBuild = new StringBuilder(); using (StreamReader reader = new StreamReader(info[3].ToString())) { while (reader.Peek() != -1) { string temp = reader.ReadLine(); temp = KeywordContainer.Replace(temp); _tempBuild.AppendLine(temp); } } string guid = info[0].ToString(); Project prjt = info[2] as Project; string folder = string.Empty; Encoding encode = Encoding.Default; if (guid == CdeCmdId.ServiceId.WebConfig) { encode = Encoding.UTF8; } if (CdeCmdId.HasForlder(guid, out folder)) { prjt.AddFromFileString(_tempBuild.ToString(), folder, StringConverter.ConvertFileName(guid), encode); } else { prjt.AddFromFileString(_tempBuild.ToString(), StringConverter.ConvertFileName(guid), encode); } return(true); } catch (Exception ex) { throw ex; } }