public ActionResult UpgradePage(string model, string viewname) { try { strLogs = ""; DbContext currentDb = SysContext.GetCurrentDb(); core_menu core_menu = currentDb.FirstOrDefault <core_menu>("where MenuUrl like '%model=" + model + "%' and MenuUrl like '%viewname=" + viewname + "%'", new object[0]); if (core_menu == null) { core_menu = currentDb.FirstOrDefault <core_menu>("where MenuUrl like '%model=" + model + "%' and MenuUrl like '%viewtype=" + viewname + "%'", new object[0]); } if (core_menu != null) { UpdateCoreMenu(core_menu); } GenUpdateFile(model, viewname); return(Json(new AjaxResult { statusCode = "1" })); } catch (Exception ex) { ServiceHelper.Log(ex); return(Json(new AjaxResult { statusCode = ((ex is UserException) ? "2" : "3"), message = ex.Message })); } }
private void UpdateCoreMenu(core_menu menuData) { DbContext currentDb = SysContext.GetCurrentDb(); if (menuData.MenuUrl != null) { string text = "http://a.com/" + menuData.MenuUrl; if (menuData.MenuUrl != null && menuData.MenuUrl.EndsWith(".js")) { currentDb.Update("core_menu", "ID", new { ID = menuData.ID, MenuUrl = menuData.MenuUrl.Replace(".js", ".w") }); } if (menuData.MenuUrl != null && menuData.MenuUrl.Contains(".js?")) { currentDb.Update("core_menu", "ID", new { ID = menuData.ID, MenuUrl = menuData.MenuUrl.Replace(".js", ".w") }); } if (text.Contains("model=")) { string newUrl = GetNewUrl(text); if (!(newUrl == text)) { strLogs += string.Format("\n更新菜单({0})链接为{1}", menuData.MenuName, newUrl); currentDb.Update("core_menu", "ID", new { ID = menuData.ID, MenuUrl = newUrl }); } } } }
public ActionResult setup(string content) { string updatePackagePath = GetUpdatePackagePath(); DbContext currentDb = SysContext.GetCurrentDb(); System.IO.File.WriteAllBytes(updatePackagePath, Convert.FromBase64String(content)); Dictionary <string, object> dictionary = new Dictionary <string, object>(); List <string> lstLogs = (List <string>)(dictionary["logs"] = new List <string>()); try { if (System.IO.File.Exists(updatePackagePath)) { dictionary["exist"] = true; string projectPath = GetProjectPath(); string zipRootPath = updatePackagePath.Substring(0, updatePackagePath.Length - ".zip".Length) + "\\"; ZipHelper.UnZip(updatePackagePath, zipRootPath); System.IO.File.Delete(updatePackagePath); string[] files = Directory.GetFiles(zipRootPath, "*", SearchOption.AllDirectories); dictionary["files_count"] = files.Count(); dictionary["files"] = files; bool modelBuild = false; bool serviceBuild = false; string[] array = files; foreach (string f in array) { try { string fileName = f.Replace(zipRootPath, ""); lstLogs.Add("path:" + fileName); if (fileName.StartsWith("db\\")) { string sqlContent = System.IO.File.ReadAllText(f); int num = 0; if (fileName.EndsWith(".sqljson")) { Dictionary <string, object> sqlJson = JsonHelper.DeserializeJsonToObject <Dictionary <string, object> >(sqlContent); sqlContent = ObjectExtensions.ToStr(sqlJson["sql"]); var ags = sqlJson["args"]; if (ags is Array) { num = currentDb.Execute(sqlContent, ((Array)ags)); } else { num = currentDb.Execute(sqlContent, ags); } } else { try { currentDb.Execute(sqlContent, new object[0]); } catch (Exception ex) { Log("写入SQL失败:" + sqlContent + "(" + ex.Message + ")"); } } try { lstLogs.Add("写入SQL:" + sqlContent + "(" + num + ")"); Log("写入SQL:" + sqlContent + "(" + num + ")"); } catch (Exception ex) { lstLogs.Add("写入SQL:" + sqlContent + "\n出错:" + ex.Message); Log("写入SQL:" + sqlContent + "\n出错:" + ex.Message); } } else if (fileName == "update.json") { string input = System.IO.File.ReadAllText(f); updateinfo updateinfo = JsonHelper.DeserializeJsonToObject <updateinfo>(input); if (updateinfo.model != null && updateinfo.model.Any()) { AddCSFiles("Model", zipRootPath, updateinfo.model); modelBuild = true; } if (updateinfo.model_remove != null && updateinfo.model_remove.Any()) { RemvoeCSFiles("Model", zipRootPath, updateinfo.model_remove); modelBuild = true; } if (updateinfo.web != null && updateinfo.web.Any()) { AddStaticFiles("web", zipRootPath, updateinfo.web); } if (updateinfo.web_remove != null && updateinfo.web_remove.Any()) { RemvoeStaticFiles("web", zipRootPath, updateinfo.web_remove); } if (updateinfo.mobileWeb != null && updateinfo.mobileWeb.Any()) { AddStaticFiles("mobileWeb", zipRootPath, updateinfo.mobileWeb); } if (updateinfo.mobileWeb_remove != null && updateinfo.mobileWeb_remove.Any()) { RemvoeStaticFiles("mobileWeb", zipRootPath, updateinfo.mobileWeb_remove); } if (updateinfo.service != null && updateinfo.service.Any()) { AddCSFiles("Service", zipRootPath, updateinfo.service); serviceBuild = true; } if (updateinfo.service_remove != null && updateinfo.service_remove.Any()) { RemvoeCSFiles("Service", zipRootPath, updateinfo.service_remove); serviceBuild = true; } if (updateinfo.bin != null && updateinfo.bin.Any()) { AddBinFiles(zipRootPath, updateinfo.bin); } if (updateinfo.bin_remove != null && updateinfo.bin_remove.Any()) { RemoveBinFiles(zipRootPath, updateinfo.bin_remove); } if (updateinfo.menu != null && updateinfo.menu.Any()) { foreach (updatemenu item in updateinfo.menu) { core_menu core_menu = new core_menu(); core_menu.ID = Guid.NewGuid().ToString(); core_menu.CreateUserID = SysContext.WanJiangUserID; core_menu.CreateDate = DateTime.Now; core_menu.MenuName = item.title; core_menu.MenuUrl = item.url; core_menu.MenuNo = item.menuNo; core_menu.MenuIcon = "/contents/icons/bubbles/02.Shop.png"; if (!string.IsNullOrEmpty(item.parentNo)) { string text6 = core_menu.ParentID = currentDb.ExecuteScalar <string>("select ID from core_menu where MenuNo = @0", new object[1] { item.parentNo }); } currentDb.Insert("core_menu", "ID", false, (object)core_menu); } } } } catch (Exception ex2) { lstLogs.Add("Error2:" + ex2.Message + ",StackTrace2:" + ex2.StackTrace); } } //if (modelBuild) //{ // string projectName = ConfigurationManager.AppSettings["ModelProjectName"]; // CompileProject($"{projectPath}{projectName}\\{projectName}.csproj"); //} //if (serviceBuild) //{ // string projectName = ConfigurationManager.AppSettings["ServiceProjectName"]; // CompileProject($"{projectPath}{projectName}\\{projectName}.csproj"); //} //if (modelBuild || serviceBuild) //{ // string projectName = ConfigurationManager.AppSettings["WebProjectName"]; // CompileProject($"{projectPath}{projectName}\\{projectName}.csproj"); //} } else { dictionary["exist"] = false; } } catch (Exception ex) { lstLogs.Add("Error:" + ex.Message + ",StackTrace:" + ex.StackTrace); } return(Json(new AjaxResult { data = dictionary, statusCode = "1" })); }