/// <summary>
        /// 根据模板生成代码
        /// </summary>
        /// <param name="tempID"></param>
        /// <param name="tablename"></param>
        /// <param name="forceChange"></param>
        /// <returns></returns>
        public JsonResult GeneratorData(int tempID, string tablename, bool forceChange)
        {
            ModelForJson data = new ModelForJson();

            try
            {
                string localURL    = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["tempLocation"]);
                string dllLocation = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["dllLocation"]);
                string connectStr  = System.Configuration.ConfigurationManager.AppSettings["DbConnString"];
                string dbType      = System.Configuration.ConfigurationManager.AppSettings["DBType"];

                var model = context.TempInfo.Find(tempID);

                if (model != null)
                {
                    string result = TemplateGenerator.RazorGenerator.DomainHelper.GenetatorTemp(forceChange, dllLocation, Server.MapPath(model.TP_URL), tablename, connectStr, model.TP_NameSpace, dbType);

                    data.Status = 1;
                    data.Result = result;
                }
                else
                {
                    data.Status = 0;
                    data.Desc   = "模板信息不存在!";
                }
            }
            catch (Exception ex)
            {
                data.Status = 0;
                data.Desc   = ex.Message;
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }
        public JsonResult TempAdd(int OrderID, string TempDesc, string FolderName, string TempName, string Content, string extention, string namespaceStr, int TempType, string fileName)
        {
            ModelForJson data = new ModelForJson();

            try
            {
                string localURL = System.Configuration.ConfigurationManager.AppSettings["tempLocation"];

                if (!string.IsNullOrEmpty(Content) && !string.IsNullOrEmpty(TempName))
                {
                    string tempURL = localURL + "\\" + TempName + ".cshtml";

                    string path = Server.MapPath(tempURL);
                    if (FileHelper.IsExistFile(path))
                    {
                        data.Status = 0;
                        data.Desc   = "已存在相同模板,无法添加!";
                    }
                    else
                    {
                        FileHelper.CreateFile(path);

                        FileHelper.WriteText(path, Content);

                        Data.TempInfo infoModel = new Data.TempInfo();
                        infoModel.TP_Order      = OrderID;
                        infoModel.TP_Desc       = TempDesc;
                        infoModel.TP_FolderName = FolderName;
                        infoModel.TP_Name       = TempName;
                        infoModel.TP_AddDate    = DateTime.Now.ToString();
                        infoModel.TP_URL        = tempURL;
                        infoModel.TP_IsSysTemp  = 0;
                        infoModel.TP_Extention  = extention;
                        infoModel.TP_NameSpace  = namespaceStr;
                        infoModel.TP_Type       = TempType;
                        infoModel.TP_FileName   = fileName;

                        context.TempInfo.Add(infoModel);
                        context.SaveChanges();

                        data.Status = 1;
                        data.Desc   = "保存成功!";
                    }
                }
                else
                {
                    data.Status = 0;
                    data.Desc   = "模板名或模板内容不能为空!";
                }
            }
            catch (Exception ex)
            {
                data.Status = 0;
                data.Desc   = ex.Message;
            }

            return(Json(data));
        }
        public JsonResult TempEdit(int TempID, int OrderID, string TempDesc, string FolderName, string TempName, string Content, string extention, string namespaceStr, int TempType, string fileName)
        {
            ModelForJson data = new ModelForJson();

            try
            {
                var model = context.TempInfo.Find(TempID);

                if (model != null)
                {
                    if (!string.IsNullOrEmpty(Content) && !string.IsNullOrEmpty(TempName))
                    {
                        string path = Server.MapPath(model.TP_URL);
                        if (FileHelper.IsExistFile(path))
                        {
                            model.TP_Order      = OrderID;
                            model.TP_Desc       = TempDesc;
                            model.TP_FolderName = FolderName;
                            model.TP_Name       = TempName;
                            model.TP_AddDate    = DateTime.Now.ToString();
                            model.TP_Extention  = extention;
                            model.TP_NameSpace  = namespaceStr;
                            model.TP_Type       = TempType;
                            model.TP_FileName   = fileName;

                            context.SaveChanges();

                            FileHelper.WriteText(path, Content);
                            data.Status = 1;
                            data.Desc   = "保存成功!";
                        }
                        else
                        {
                            data.Status = 0;
                            data.Desc   = "保存错误,模板文件不存在!";
                        }
                    }
                    else
                    {
                        data.Status = 0;
                        data.Desc   = "模板名或模板内容不能为空!";
                    }
                }
                else
                {
                    data.Status = 0;
                    data.Desc   = "模板信息错误!";
                }
            }
            catch (Exception ex)
            {
                data.Status = 0;
                data.Desc   = ex.Message;
            }

            return(Json(data));
        }
        public ActionResult TempDelete(int tempID)
        {
            ModelForJson data = new ModelForJson();

            try
            {
                var model = context.TempInfo.Find(tempID);

                if (model != null)
                {
                    string path = Server.MapPath(model.TP_URL);

                    if (FileHelper.IsExistFile(path))
                    {
                        if (model.TP_IsSysTemp == 1)
                        {
                            data.Status = 0;
                            data.Desc   = "预置模板不允许删除!";
                        }
                        else
                        {
                            context.TempInfo.Remove(model);

                            FileHelper.DeleteFile(path);
                            data.Status = 1;
                            data.Desc   = "删除成功!";

                            context.SaveChanges();
                        }
                    }
                    else
                    {
                        data.Status = 0;
                        data.Desc   = "模板文件不存在!";
                    }
                }
                else
                {
                    data.Status = 0;
                    data.Desc   = "模板文件不存在!";
                }
            }
            catch (Exception ex)
            {
                data.Status = 0;
                data.Desc   = ex.Message;
            }

            return(Json(data));
        }
示例#5
0
        /// <summary>
        /// 根据模板生成代码
        /// </summary>
        /// <param name="tempID"></param>
        /// <param name="tablename"></param>
        /// <param name="forceChange"></param>
        /// <returns></returns>
        public JsonResult GeneratorData(int tempID, string tablename, bool forceChange)
        {
            ModelForJson data = new ModelForJson();

            try
            {
                string localURL = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["tempLocation"]);

                string dllLocation = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["dllLocation"]);

                string nameSpace = AppSettingHelper.GetAppSetting("NameSpaceCodeFirst");

                var model = context.TempInfo.Find(tempID);

                if (model != null)
                {
                    var dataModel = Assembly.GetExecutingAssembly().GetTypes().Where(u => u.Namespace == nameSpace && u.FullName == tablename).ToList();



                    if (dataModel.Count == 1)
                    {
                        var modelData = TemplateGenerator.CodeFirstGenerator.CodeFirstHelper.GetModelData(dataModel[0]);

                        string dataString = JsonHelper.ToJson(modelData);

                        string result = TemplateGenerator.RazorGenerator.DomainHelper.GenetatorCodeFirst(dllLocation, Server.MapPath(model.TP_URL), forceChange, dataString);
                        data.Status = 1;
                        data.Result = result;
                    }
                    else
                    {
                        data.Status = 0;
                        data.Result = "错误的模型全称!";
                    }
                }
                else
                {
                    data.Status = 0;
                    data.Desc   = "模板信息不存在!";
                }
            }
            catch (Exception ex)
            {
                data.Status = 0;
                data.Desc   = ex.Message;
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }
        public ActionResult DatabaseConfig(string sqlStr, string dbType, string dbName)
        {
            ModelForJson data = new ModelForJson();

            try
            {
                TemplateGenerator.Util.AppSettingHelper.UpdateWebConfigAppSetting("DbConnString", sqlStr);

                TemplateGenerator.Util.AppSettingHelper.UpdateWebConfigAppSetting("DBType", dbType);

                TemplateGenerator.Util.AppSettingHelper.UpdateWebConfigAppSetting("DBName", dbName);

                data.Status = 1;
                data.Desc   = "配置成功";
            }
            catch (Exception e)
            {
                data.Status = 0;
                data.Desc   = e.Message;
            }


            return(Json(data));
        }