public bool Publish(Guid id, bool isMvc = false) { RoadFlow.Data.Model.ProgramBuilder model1 = this.Get(id); if (model1 == null || model1.Name.IsNullOrEmpty() || model1.SQL.IsNullOrEmpty()) { return(false); } AppLibrary appLibrary = new AppLibrary(); RoadFlow.Data.Model.AppLibrary model2 = appLibrary.GetByCode(id.ToString(), true); bool flag1 = false; using (TransactionScope transactionScope = new TransactionScope()) { if (model2 == null) { flag1 = true; model2 = new RoadFlow.Data.Model.AppLibrary(); model2.ID = Guid.NewGuid(); } model2.Address = !isMvc ? "/Platform/ProgramBuilder/Run.aspx?programid=" + id.ToString() : "/ProgramBuilder/Run?programid=" + id.ToString(); model2.Code = id.ToString(); model2.OpenMode = 0; model2.Title = model1.Name; model2.Type = model1.Type; if (flag1) { appLibrary.Add(model2); } else { appLibrary.Update(model2); } model1.Status = 1; this.Update(model1); List <RoadFlow.Data.Model.ProgramBuilderButtons> all = new ProgramBuilderButtons().GetAll(model1.ID); AppLibraryButtons1 appLibraryButtons1_1 = new AppLibraryButtons1(); List <RoadFlow.Data.Model.AppLibraryButtons1> allByAppId = appLibraryButtons1_1.GetAllByAppID(model2.ID); List <RoadFlow.Data.Model.AppLibraryButtons1> appLibraryButtons1List = new List <RoadFlow.Data.Model.AppLibraryButtons1>(); foreach (RoadFlow.Data.Model.ProgramBuilderButtons programBuilderButtons in all) { RoadFlow.Data.Model.ProgramBuilderButtons button = programBuilderButtons; RoadFlow.Data.Model.AppLibraryButtons1 model3 = allByAppId.Find((Predicate <RoadFlow.Data.Model.AppLibraryButtons1>)(p => p.ID == button.ID)); bool flag2 = false; if (model3 == null) { model3 = new RoadFlow.Data.Model.AppLibraryButtons1(); flag2 = true; } model3.AppLibraryID = model2.ID; model3.ButtonID = button.ButtonID; model3.Events = button.ClientScript; model3.Ico = button.Ico ?? ""; model3.ID = button.ID; model3.Name = button.ButtonName; model3.ShowType = button.ShowType; model3.Sort = button.Sort; model3.Type = 0; model3.IsValidateShow = button.IsValidateShow; if (flag2) { appLibraryButtons1_1.Add(model3); } else { appLibraryButtons1_1.Update(model3); } appLibraryButtons1List.Add(model3); } foreach (RoadFlow.Data.Model.AppLibraryButtons1 appLibraryButtons1_2 in allByAppId) { RoadFlow.Data.Model.AppLibraryButtons1 button = appLibraryButtons1_2; if (appLibraryButtons1List.Find((Predicate <RoadFlow.Data.Model.AppLibraryButtons1>)(p => p.ID == button.ID)) == null) { appLibraryButtons1_1.Delete(button.ID); } } transactionScope.Complete(); } new AppLibrary().ClearCache(); new Menu().ClearAllDataTableCache(); new AppLibraryButtons1().ClearCache(); new AppLibrarySubPages().ClearCache(); this.AddToCache(new ProgramBuilderCache() { Program = model1, Fields = new ProgramBuilderFields().GetAll(model1.ID).OrderBy <RoadFlow.Data.Model.ProgramBuilderFields, int>((Func <RoadFlow.Data.Model.ProgramBuilderFields, int>)(p => p.Sort)).ToList <RoadFlow.Data.Model.ProgramBuilderFields>(), Querys = new ProgramBuilderQuerys().GetAll(model1.ID).OrderBy <RoadFlow.Data.Model.ProgramBuilderQuerys, int>((Func <RoadFlow.Data.Model.ProgramBuilderQuerys, int>)(p => p.Sort)).ToList <RoadFlow.Data.Model.ProgramBuilderQuerys>(), Buttons = new ProgramBuilderButtons().GetAll(id).OrderBy <RoadFlow.Data.Model.ProgramBuilderButtons, int>((Func <RoadFlow.Data.Model.ProgramBuilderButtons, int>)(p => p.Sort)).ToList <RoadFlow.Data.Model.ProgramBuilderButtons>(), Validates = new ProgramBuilderValidates().GetAll(id), Export = new ProgramBuilderExport().GetAll(id).OrderBy <RoadFlow.Data.Model.ProgramBuilderExport, int>((Func <RoadFlow.Data.Model.ProgramBuilderExport, int>)(p => p.Sort)).ToList <RoadFlow.Data.Model.ProgramBuilderExport>() }); return(true); }
public string Publish() { string text = base.Request["html"]; string text2 = base.Request["name"]; string text3 = base.Request["att"]; string text4 = base.Request["id"]; string str = base.Request["formats"]; Guid test; if (!text4.IsGuid(out test) || text2.IsNullOrEmpty() || text3.IsNullOrEmpty()) { return("参数错误!"); } RoadFlow.Platform.WorkFlowForm workFlowForm = new RoadFlow.Platform.WorkFlowForm(); RoadFlow.Data.Model.WorkFlowForm workFlowForm2 = workFlowForm.Get(test); if (workFlowForm2 == null) { return("请先保存表单再发布!"); } string str2 = text4 + ".cshtml"; StringBuilder stringBuilder = new StringBuilder("@{\r\n"); JsonData jsonData = JsonMapper.ToObject(text3); stringBuilder.Append("\tstring FlowID = Request.QueryString[\"flowid\"];\r\n"); stringBuilder.Append("\tstring StepID = Request.QueryString[\"stepid\"];\r\n"); stringBuilder.Append("\tstring GroupID = Request.QueryString[\"groupid\"];\r\n"); stringBuilder.Append("\tstring TaskID = Request.QueryString[\"taskid\"];\r\n"); stringBuilder.Append("\tstring InstanceID = Request.QueryString[\"instanceid\"];\r\n"); stringBuilder.Append("\tstring DisplayModel = Request.QueryString[\"display\"] ?? \"0\";\r\n"); stringBuilder.AppendFormat("\tstring DBConnID = \"{0}\";\r\n", jsonData["dbconn"].ToString()); stringBuilder.AppendFormat("\tstring DBTable = \"{0}\";\r\n", jsonData["dbtable"].ToString()); stringBuilder.AppendFormat("\tstring DBTablePK = \"{0}\";\r\n", jsonData["dbtablepk"].ToString()); stringBuilder.AppendFormat("\tstring DBTableTitle = \"{0}\";\r\n", jsonData["dbtabletitle"].ToString()); stringBuilder.Append("\tif(InstanceID.IsNullOrEmpty()){InstanceID = Request.QueryString[\"instanceid1\"];}\r\n"); stringBuilder.Append("\tRoadFlow.Platform.Dictionary BDictionary = new RoadFlow.Platform.Dictionary();\r\n"); stringBuilder.Append("\tRoadFlow.Platform.WorkFlow BWorkFlow = new RoadFlow.Platform.WorkFlow();\r\n"); stringBuilder.Append("\tRoadFlow.Platform.WorkFlowTask BWorkFlowTask = new RoadFlow.Platform.WorkFlowTask();\r\n"); stringBuilder.Append("\tstring fieldStatus = BWorkFlow.GetFieldStatus(FlowID, StepID);\r\n"); stringBuilder.Append("\tLitJson.JsonData initData = BWorkFlow.GetFormData(DBConnID, DBTable, DBTablePK, InstanceID, fieldStatus, \"" + str + "\");\r\n"); stringBuilder.Append("\tstring TaskTitle = BWorkFlow.GetFromFieldData(initData, DBTable, DBTableTitle);\r\n"); stringBuilder.Append("}\r\n"); stringBuilder.Append("<link href=\"~/Scripts/FlowRun/Forms/flowform.css\" rel=\"stylesheet\" type=\"text/css\" />\r\n"); stringBuilder.Append("<script src=\"~/Scripts/FlowRun/Forms/common.js\" type=\"text/javascript\" ></script>\r\n"); if (jsonData.ContainsKey("hasEditor") && "1" == jsonData["hasEditor"].ToString()) { stringBuilder.Append("<script src=\"~/Scripts/Ueditor/ueditor.config.js\" type=\"text/javascript\" ></script>\r\n"); stringBuilder.Append("<script src=\"~/Scripts/Ueditor/ueditor.all.min.js\" type=\"text/javascript\" ></script>\r\n"); stringBuilder.Append("<script src=\"~/Scripts/Ueditor/lang/zh-cn/zh-cn.js\" type=\"text/javascript\" ></script>\r\n"); stringBuilder.Append("<input type=\"hidden\" id=\"Form_HasUEditor\" name=\"Form_HasUEditor\" value=\"1\" />\r\n"); } string str3 = jsonData.ContainsKey("validatealerttype") ? jsonData["validatealerttype"].ToString() : "2"; stringBuilder.Append("<input type=\"hidden\" id=\"Form_ValidateAlertType\" name=\"Form_ValidateAlertType\" value=\"" + str3 + "\" />\r\n"); if (jsonData.ContainsKey("autotitle") && jsonData["autotitle"].ToString().ToLower() == "true") { stringBuilder.AppendFormat("<input type=\"hidden\" id=\"{0}\" name=\"{0}\" value=\"{1}\" />\r\n", jsonData["dbtable"].ToString() + "." + jsonData["dbtabletitle"].ToString(), "@(TaskTitle.IsNullOrEmpty() ? BWorkFlow.GetAutoTaskTitle(FlowID, StepID, Request.QueryString[\"groupid\"]) : TaskTitle)"); } stringBuilder.AppendFormat("<input type=\"hidden\" id=\"Form_TitleField\" name=\"Form_TitleField\" value=\"{0}\" />\r\n", jsonData["dbtable"].ToString() + "." + jsonData["dbtabletitle"].ToString()); stringBuilder.AppendFormat("<input type=\"hidden\" id=\"Form_DBConnID\" name=\"Form_DBConnID\" value=\"{0}\" />\r\n", jsonData["dbconn"].ToString()); stringBuilder.AppendFormat("<input type=\"hidden\" id=\"Form_DBTable\" name=\"Form_DBTable\" value=\"{0}\" />\r\n", jsonData["dbtable"].ToString()); stringBuilder.AppendFormat("<input type=\"hidden\" id=\"Form_DBTablePk\" name=\"Form_DBTablePk\" value=\"{0}\" />\r\n", jsonData["dbtablepk"].ToString()); stringBuilder.AppendFormat("<input type=\"hidden\" id=\"Form_DBTableTitle\" name=\"Form_DBTableTitle\" value=\"{0}\" />\r\n", jsonData["dbtabletitle"].ToString()); stringBuilder.AppendFormat("<input type=\"hidden\" id=\"Form_AutoSaveData\" name=\"Form_AutoSaveData\" value=\"{0}\" />\r\n", "1"); stringBuilder.AppendFormat("<textarea id=\"Form_DBTableTitleExpression\" name=\"Form_DBTableTitleExpression\" style=\"display:none;width:0;height:0;\">{0}</textarea>\r\n", jsonData.ContainsKey("dbtabletitle1") ? jsonData["dbtabletitle1"].ToString() : ""); stringBuilder.Append("<script type=\"text/javascript\">\r\n"); stringBuilder.Append("\tvar initData = @Html.Raw(BWorkFlow.GetFormDataJsonString(initData));\r\n"); stringBuilder.Append("\tvar fieldStatus = \"1\"==\"@Request.QueryString[\"isreadonly\"]\" ? {} : @Html.Raw(fieldStatus);\r\n"); stringBuilder.Append("\tvar displayModel = '@DisplayModel';\r\n"); stringBuilder.Append("\t$(window).load(function (){\r\n"); stringBuilder.AppendFormat("\t\tformrun.initData(initData, \"{0}\", fieldStatus, displayModel);\r\n", jsonData["dbtable"].ToString()); stringBuilder.Append("\t});\r\n"); stringBuilder.Append("</script>\r\n"); FileStream fileStream = System.IO.File.Open(base.Server.MapPath("~/Views/WorkFlowFormDesigner/Forms/" + str2), FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); fileStream.SetLength(0L); StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8); streamWriter.Write(stringBuilder.ToString()); streamWriter.Write(base.Server.HtmlDecode(text)); streamWriter.Close(); fileStream.Close(); string str4 = JsonMapper.ToObject(workFlowForm2.Attribute)["apptype"].ToString(); RoadFlow.Platform.AppLibrary appLibrary = new RoadFlow.Platform.AppLibrary(); RoadFlow.Data.Model.AppLibrary appLibrary2 = appLibrary.GetByCode(text4); bool flag = false; if (appLibrary2 == null) { appLibrary2 = new RoadFlow.Data.Model.AppLibrary(); appLibrary2.ID = Guid.NewGuid(); appLibrary2.Code = text4; flag = true; } appLibrary2.Address = "/Views/WorkFlowFormDesigner/Forms/" + str2; appLibrary2.Note = "流程表单"; appLibrary2.OpenMode = 0; appLibrary2.Params = ""; appLibrary2.Title = text2.Trim(); appLibrary2.Type = (str4.IsGuid() ? str4.ToGuid() : new RoadFlow.Platform.Dictionary().GetIDByCode("FormTypes")); if (flag) { appLibrary.Add(appLibrary2); } else { appLibrary.Update(appLibrary2); } RoadFlow.Platform.Log.Add("发布了流程表单", appLibrary2.Serialize() + "内容:" + text, RoadFlow.Platform.Log.Types.流程相关); workFlowForm2.Status = 1; workFlowForm.Update(workFlowForm2); return("发布成功!"); }
public bool Publish(Guid id, bool isMvc = false) { RoadFlow.Data.Model.ProgramBuilder programBuilder = Get(id); if (programBuilder == null || programBuilder.Name.IsNullOrEmpty() || programBuilder.SQL.IsNullOrEmpty()) { return(false); } AppLibrary appLibrary = new AppLibrary(); RoadFlow.Data.Model.AppLibrary appLibrary2 = appLibrary.GetByCode(id.ToString()); bool flag = false; using (TransactionScope transactionScope = new TransactionScope()) { if (appLibrary2 == null) { flag = true; appLibrary2 = new RoadFlow.Data.Model.AppLibrary(); appLibrary2.ID = Guid.NewGuid(); } appLibrary2.Address = ((!isMvc) ? ("/Platform/ProgramBuilder/Run.aspx?programid=" + id.ToString()) : ("/ProgramBuilder/Run?programid=" + id.ToString())); appLibrary2.Code = id.ToString(); appLibrary2.OpenMode = 0; appLibrary2.Title = programBuilder.Name; appLibrary2.Type = programBuilder.Type; if (flag) { appLibrary.Add(appLibrary2); } else { appLibrary.Update(appLibrary2); } programBuilder.Status = 1; Update(programBuilder); List <RoadFlow.Data.Model.ProgramBuilderButtons> all = new ProgramBuilderButtons().GetAll(programBuilder.ID); AppLibraryButtons1 appLibraryButtons = new AppLibraryButtons1(); List <RoadFlow.Data.Model.AppLibraryButtons1> allByAppID = appLibraryButtons.GetAllByAppID(appLibrary2.ID); List <RoadFlow.Data.Model.AppLibraryButtons1> list = new List <RoadFlow.Data.Model.AppLibraryButtons1>(); foreach (RoadFlow.Data.Model.ProgramBuilderButtons item in all) { RoadFlow.Data.Model.AppLibraryButtons1 appLibraryButtons2 = allByAppID.Find((RoadFlow.Data.Model.AppLibraryButtons1 p) => p.ID == item.ID); bool flag2 = false; if (appLibraryButtons2 == null) { appLibraryButtons2 = new RoadFlow.Data.Model.AppLibraryButtons1(); flag2 = true; } appLibraryButtons2.AppLibraryID = appLibrary2.ID; appLibraryButtons2.ButtonID = item.ButtonID; appLibraryButtons2.Events = item.ClientScript; appLibraryButtons2.Ico = (item.Ico ?? ""); appLibraryButtons2.ID = item.ID; appLibraryButtons2.Name = item.ButtonName; appLibraryButtons2.ShowType = item.ShowType; appLibraryButtons2.Sort = item.Sort; appLibraryButtons2.Type = 0; appLibraryButtons2.IsValidateShow = item.IsValidateShow; if (flag2) { appLibraryButtons.Add(appLibraryButtons2); } else { appLibraryButtons.Update(appLibraryButtons2); } list.Add(appLibraryButtons2); } foreach (RoadFlow.Data.Model.AppLibraryButtons1 item2 in allByAppID) { if (list.Find((RoadFlow.Data.Model.AppLibraryButtons1 p) => p.ID == item2.ID) == null) { appLibraryButtons.Delete(item2.ID); } } transactionScope.Complete(); } new AppLibrary().ClearCache(); new Menu().ClearAllDataTableCache(); new AppLibraryButtons1().ClearCache(); new AppLibrarySubPages().ClearCache(); ProgramBuilderCache programBuilderCache = new ProgramBuilderCache(); programBuilderCache.Program = programBuilder; programBuilderCache.Fields = (from p in new ProgramBuilderFields().GetAll(programBuilder.ID) orderby p.Sort select p).ToList(); programBuilderCache.Querys = (from p in new ProgramBuilderQuerys().GetAll(programBuilder.ID) orderby p.Sort select p).ToList(); programBuilderCache.Buttons = (from p in new ProgramBuilderButtons().GetAll(id) orderby p.Sort select p).ToList(); programBuilderCache.Validates = new ProgramBuilderValidates().GetAll(id); programBuilderCache.Export = (from p in new ProgramBuilderExport().GetAll(id) orderby p.Sort select p).ToList(); AddToCache(programBuilderCache); return(true); }
public ActionResult Edit(FormCollection collection) { string str = base.Request.QueryString["id"]; string value = base.Request.QueryString["typeid"]; RoadFlow.Platform.AppLibrary appLibrary = new RoadFlow.Platform.AppLibrary(); RoadFlow.Data.Model.AppLibrary appLibrary2 = null; if (str.IsGuid()) { appLibrary2 = appLibrary.Get(str.ToGuid()); } bool flag = !str.IsGuid(); string oldXML = string.Empty; if (appLibrary2 == null) { appLibrary2 = new RoadFlow.Data.Model.AppLibrary(); appLibrary2.ID = Guid.NewGuid(); base.ViewBag.TypeOptions = new RoadFlow.Platform.AppLibrary().GetTypeOptions(value); base.ViewBag.OpenOptions = new RoadFlow.Platform.Dictionary().GetOptionsByCode("appopenmodel"); } else { oldXML = appLibrary2.Serialize(); base.ViewBag.TypeOptions = new RoadFlow.Platform.AppLibrary().GetTypeOptions(appLibrary2.Type.ToString()); base.ViewBag.OpenOptions = new RoadFlow.Platform.Dictionary().GetOptionsByCode("appopenmodel", RoadFlow.Platform.Dictionary.OptionValueField.Value, appLibrary2.OpenMode.ToString()); } if (collection != null) { string title = collection["title"]; string text = collection["address"]; string str2 = collection["openModel"]; string str3 = collection["width"]; string str4 = collection["height"]; string @params = collection["Params"]; string note = collection["Note"]; string text2 = collection["Ico"]; string text3 = collection["IcoColor"]; value = collection["type"]; appLibrary2.Address = text.Trim(); appLibrary2.Height = str4.ToIntOrNull(); appLibrary2.Note = note; appLibrary2.OpenMode = str2.ToInt(); appLibrary2.Params = @params; appLibrary2.Title = title; appLibrary2.Type = value.ToGuid(); appLibrary2.Width = str3.ToIntOrNull(); if (!text2.IsNullOrEmpty()) { appLibrary2.Ico = text2; } else { appLibrary2.Ico = null; } if (!text3.IsNullOrEmpty()) { appLibrary2.Color = text3.Trim(); } else { appLibrary2.Color = null; } string text4 = base.Request.QueryString["pagesize"]; string text5 = base.Request.QueryString["pagenumber"]; using (TransactionScope transactionScope = new TransactionScope()) { if (flag) { appLibrary.Add(appLibrary2); RoadFlow.Platform.Log.Add("添加了应用程序库", appLibrary2.Serialize(), RoadFlow.Platform.Log.Types.菜单权限); base.ViewBag.Script = "alert('添加成功!');new RoadUI.Window().reloadOpener(undefined,undefined,\"query('" + text4 + "','" + text5 + "')\");new RoadUI.Window().close();"; } else { appLibrary.Update(appLibrary2); RoadFlow.Platform.Log.Add("修改了应用程序库", "", RoadFlow.Platform.Log.Types.菜单权限, oldXML, appLibrary2.Serialize()); base.ViewBag.Script = "alert('修改成功!');new RoadUI.Window().reloadOpener(undefined,undefined,\"query('" + text4 + "','" + text5 + "')\");new RoadUI.Window().close();"; } RoadFlow.Platform.AppLibraryButtons1 appLibraryButtons = new RoadFlow.Platform.AppLibraryButtons1(); string obj = base.Request.Form["buttonindex"] ?? ""; List <RoadFlow.Data.Model.AppLibraryButtons1> allByAppID = appLibraryButtons.GetAllByAppID(appLibrary2.ID); List <RoadFlow.Data.Model.AppLibraryButtons1> list = new List <RoadFlow.Data.Model.AppLibraryButtons1>(); string[] array = obj.Split(','); foreach (string index in array) { string str5 = base.Request.Form["button_" + index]; string str6 = base.Request.Form["buttonname_" + index]; string text6 = base.Request.Form["buttonevents_" + index]; string ico = base.Request.Form["buttonico_" + index]; string str7 = base.Request.Form["showtype_" + index]; string str8 = base.Request.Form["buttonsort_" + index]; if (!str6.IsNullOrEmpty() && !text6.IsNullOrEmpty()) { RoadFlow.Data.Model.AppLibraryButtons1 appLibraryButtons2 = allByAppID.Find((RoadFlow.Data.Model.AppLibraryButtons1 p) => p.ID == index.ToGuid()); bool flag2 = false; if (appLibraryButtons2 == null) { flag2 = true; appLibraryButtons2 = new RoadFlow.Data.Model.AppLibraryButtons1(); appLibraryButtons2.ID = Guid.NewGuid(); } else { list.Add(appLibraryButtons2); } appLibraryButtons2.AppLibraryID = appLibrary2.ID; if (str5.IsGuid()) { appLibraryButtons2.ButtonID = str5.ToGuid(); } appLibraryButtons2.Events = text6; appLibraryButtons2.Ico = ico; appLibraryButtons2.Name = str6.Trim1(); appLibraryButtons2.Sort = str8.ToInt(0); appLibraryButtons2.ShowType = str7.ToInt(0); appLibraryButtons2.Type = 0; if (flag2) { appLibraryButtons.Add(appLibraryButtons2); } else { appLibraryButtons.Update(appLibraryButtons2); } } } foreach (RoadFlow.Data.Model.AppLibraryButtons1 item in allByAppID) { if (list.Find((RoadFlow.Data.Model.AppLibraryButtons1 p) => p.ID == item.ID) == null) { appLibraryButtons.Delete(item.ID); } } transactionScope.Complete(); appLibraryButtons.ClearCache(); } new RoadFlow.Platform.Menu().ClearAllDataTableCache(); new RoadFlow.Platform.WorkFlow().ClearStartFlowsCache(); appLibrary.ClearCache(); } return(View(appLibrary2)); }