Пример #1
0
        /// <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 });
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
 /// <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;
     }
 }