public virtual JObject ReturnToInitiator(HttpContext context) { YZRequest request = new YZRequest(context); this.ApproveCheck(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //移动审批不保存表单数据 if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } User user = BPMTask.RecedeRestart(cn, taskid, comments); JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["UserFriendlyName"] = user.FriendlyName; return(rv); } }
public virtual JObject GetTaskReadInfo(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("tid"); string permisions = request.GetString("Permisions", null); BPMTask task; string formFile; JObject perm; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); task = BPMTask.Load(cn, taskid); formFile = BPMProcess.GetTaskReadForm(cn, taskid); perm = this.CheckPermision(cn, taskid, -1, permisions); } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["sn"] = task.SerialNum; rv["url"] = YZUtility.GetFormRedirectUrl(formFile).ToString(); rv["urlParams"] = task.UrlParams; rv["perm"] = perm; return(rv); }
protected void Page_Load(object sender, EventArgs e) { if (!YZAuthHelper.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); return; } int tid = Int32.Parse(this.Request["tid"]); string formFile; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); formFile = BPMProcess.GetDefaultReadForm(cn, tid); } if (String.IsNullOrEmpty(formFile)) { throw new Exception(Resources.YZStrings.Aspx_Read_MissForm); } else { YZUrlBuilder urlBuilder = YZUtility.GetFormRedirectUrl(this.Page, formFile); this.Response.Redirect(urlBuilder.ToString(), true); } }
public virtual object GetBPMProcessRACI(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); string fileid; NodeItemCollection nodes; LinkItemCollection links; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMProcess.GetKMInfo(cn, processName, version, out fileid, out nodes, out links); } if (String.IsNullOrEmpty(fileid)) { throw new Exception(String.Format("流程{0}无关联文件", processName)); } using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { File file = File.Load(provider, cn, fileid); DataTable table = file.Sprites.SortByOrder().GetRACIDetailTable(provider, cn, "result"); table = this.Map(table, nodes); return(table); } } }
public virtual JObject DirectSend(HttpContext context) { YZRequest request = new YZRequest(context); int stepid = request.GetInt32("StepID"); bool saveFormData = request.GetBool("SaveFormData"); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (saveFormData) { BPMProcess.Post(cn, context.Request.InputStream); } BPMStepCollection newsteps = BPMProcStep.DirectSend(cn, stepid); List <string> to = new List <string>(); foreach (BPMProcStep step in newsteps) { to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName))); } JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["tosteps"] = String.Join(";", to.ToArray()); return(rv); } }
public virtual JObject Jump(HttpContext context) { YZRequest request = new YZRequest(context); this.ApproveCheck(context); int stepid = request.GetInt32("StepID", -1); int taskid = request.GetInt32("TaskID"); string toStepName = request.GetString("ToStepName"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; List <int> fromStepIDs = jPost["fromStepIDs"].ToObject <List <int> >(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //移动审批不保存表单数据 if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } BPMProcStep step = BPMTask.Jump(cn, taskid, stepid, fromStepIDs.ToArray(), toStepName, comments); JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["StepName"] = step.NodeName; rv["UserFriendlyName"] = YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName); return(rv); } }
public virtual JObject Transfer(HttpContext context) { YZRequest request = new YZRequest(context); this.ApproveCheck(context); int stepid = request.GetInt32("StepID"); string memberFullName = request.GetString("MemberFullName"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //移动审批不保存表单数据 if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } User user = BPMProcStep.Transfer(cn, stepid, memberFullName, comments); JObject rv = new JObject(); rv[YZJsonProperty.success] = true; rv["UserFriendlyName"] = user.FriendlyName; return(rv); } }
public virtual object GetTaskTraceInfo(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); BPMTask task; NodeItemCollection nodes = new NodeItemCollection(); LinkItemCollection links = new LinkItemCollection(); BPMStepCollection steps = new BPMStepCollection(); //获得数据 using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); task = BPMTask.Load(cn, taskid); BPMProcess.GetTaskTraceInfo(cn, task.ProcessName, task.ProcessVersion, out nodes, out links); steps = BPMTask.GetAllSteps(cn, taskid); } return(new { Task = this.SerializeTask(task), Process = new { Nodes = nodes, Links = links }, Steps = this.SerializeSteps(steps) }); }
public virtual JObject RecedeBack(HttpContext context) { YZRequest request = new YZRequest(context); int stepid = request.GetInt32("StepID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; List <int> toStepIDs = jPost["toStepIDs"].ToObject <List <int> >(); BPMProcStep srcStep; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } srcStep = BPMProcStep.Load(cn, stepid); BPMStepCollection newSteps = BPMProcStep.RecedeBack(cn, stepid, toStepIDs.ToArray(), comments); List <string> to = new List <string>(); foreach (BPMProcStep step in newSteps) { to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserShortName(step.RecipientAccount, step.RecipientFullName))); } JObject rv = new JObject(); rv["tosteps"] = String.Join(";", to.ToArray()); return(rv); } }
public virtual JArray GetFormReadData(BPMConnection cn, JObject request) { int tid = Int32.Parse((string)request["TID"]); FlowDataSet dataset = BPMProcess.GetFormDataForRead(cn, tid); return(this.ToResult(dataset, true)); }
/// <summary> /// Starts the miner process /// </summary> /// <returns></returns> protected virtual BPMProcess StartProcess() { var process = new BPMProcess(); IsMining = true; process.Start(MinerWorkingDirectory, MinerArguments, MinerFileName, Hardware == HardwareType.AMD, MinerBaseType); process.MinerProcess.Exited += MinerExited; return(process); }
public virtual object Process(HttpContext context) { YZRequest request = new YZRequest(context); int stepid = request.GetInt32("StepID"); string uid = request.GetString("uid", YZAuthHelper.LoginUserAccount); //共享任务uid为空,会导致重定向到登录页面,产生异常 using (BPMConnection cn = new BPMConnection()) { string orguid = YZAuthHelper.LoginUserAccount; YZAuthHelper.SetAuthCookie(uid); try { cn.WebOpen(); } finally { YZAuthHelper.SetAuthCookie(orguid); } ProcessInfo processInfo = BPMProcess.GetProcessInfo(cn, stepid); if (processInfo.Links.Count == 0) { throw new BPMException(BPMExceptionType.MissOutLink, processInfo.NodeName); } string postXml = @"{0} <XForm> <Header> <Method>Process</Method> <PID>{1}</PID> <Action>{2}</Action> <Comment></Comment> </Header> <FormData> </FormData> </XForm>"; postXml = String.Format(postXml, "<?xml version=\"1.0\"?>", stepid, YZUtility.EncodeXMLInnerText(processInfo.Links[0].DisplayString)); using (MemoryStream postStream = new MemoryStream(Encoding.UTF8.GetBytes(postXml))) { PostResult postResult = BPMProcess.Post(cn, postStream); return(new { success = true, result = (postResult.PostResultType == PostResultType.TaskFinishedApproved || postResult.PostResultType == PostResultType.TaskFinishedRejected) ? "finished" : "running" }); } } }
public virtual JArray GetFormPostData(BPMConnection cn, JObject request) { string processName = (string)request["ProcessName"]; Version processVersion = new Version((string)request["ProcessVersion"]); string owner = (string)request["Owner"]; int restartTaskID = request.Property("restartTaskID") != null ? (int)request["restartTaskID"]:-1; FlowDataSet dataset = BPMProcess.GetFormData(cn, processName, processVersion, owner, restartTaskID); return(this.ToResult(dataset, true)); }
public virtual BPMProcess LoadFloFile(HttpContext context, HttpPostedFile file, string fileName, long fileSize, string fileExt) { YZRequest request = new YZRequest(context); BPMProcess process = new BPMProcess(); file.InputStream.Seek(0, SeekOrigin.Begin); process.Load(file.InputStream); return(process); }
protected virtual JObject Serialize(BPMProcess process) { JObject rv = new JObject(); rv["ProcessName"] = process.Name; rv["Active"] = process.Active; rv["ProcessVersion"] = process.Version.ToString(2); rv["Description"] = process.Property.Description; return(rv); }
public virtual void SaveProcessAsFile(HttpContext context) { YZRequest request = new YZRequest(context); string filename = request.GetString("fileName"); JObject jProcess = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(request.GetString("process", null)))); BPMProcess process = jProcess.ToObject <BPMProcess>(); this.ProcessResponseHeader(context, filename, true); process.Save(context.Response.OutputStream); }
public override void Start() { // Override the standard StartProcess since this miner requires a configuration file vs command line GenerateLyclConfig(); MinerProcess = new BPMProcess(); IsMining = true; MinerProcess.Start(MinerWorkingDirectory, MinerConfigArguments, MinerFileName, Hardware == HardwareType.AMD, MinerBaseType); MinerProcess.MinerProcess.Exited += MinerExited; }
protected void Page_Load(object sender, EventArgs e) { if (!AspxHelper.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } int tid = Int32.Parse(this.Request["tid"]); string formFile; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(this.Page); string token = Request.QueryString["token"]; if (String.IsNullOrEmpty(token)) { if (!SecurityManager.CheckTaskAccessPermision(cn, tid, BPMPermision.TaskRead, cn.UID)) { throw new BPMException(BPMExceptionType.PermDeniedReadForm); } } else { if (!AspxHelper.CheckTaskAccessToken(tid, token) && !SecurityManager.CheckTaskAccessPermision(cn, tid, BPMPermision.TaskRead, cn.UID)) { throw new BPMException(BPMExceptionType.PermDeniedReadForm); } } formFile = BPMProcess.GetDefaultReadForm(cn, tid); } if (String.IsNullOrEmpty(formFile)) { throw new Exception(Resources.BPMResource.Read_MissForm); } else { if (formFile.IndexOf('?') != -1) { this.Server.Transfer(this.ResolveClientUrl("../XForm/") + formFile + "&" + this.Request.QueryString.ToString(), false); } else { this.Server.Transfer(this.ResolveClientUrl("../XForm/") + formFile + "?" + this.Request.QueryString.ToString(), false); } this.Response.End(); } }
public virtual TableIdentityCollection GetProcessGlobalTableIdentitys(HttpContext context) { YZRequest request = new YZRequest(context); string serverName = request.GetString("ServerName", null); string processName = request.GetString("ProcessName"); using (BPMConnection cn = new BPMConnection()) { this.OpenConnection(cn, serverName); return(BPMProcess.GetProcessGlobalTableIdentitys(cn, processName)); } }
public virtual JObject GetProcessForecastSteps(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); string owner = request.GetString("owner", null); string xmlData = request.GetString("xmlData", null); if (!String.IsNullOrEmpty(xmlData)) { xmlData = Encoding.UTF8.GetString(Convert.FromBase64String(xmlData)); } if (String.IsNullOrEmpty(owner)) { throw new Exception(String.Format(Resources.YZStrings.Aspx_ProcessForecastNoPos, YZAuthHelper.LoginUserAccount)); } JObject rv = new JObject(); //获得数据 BPMStepCollection steps = null; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); steps = BPMProcess.GetForecastSteps(cn, processName, version, owner, xmlData); //将数据转化为Json集合 JArray children = new JArray(); rv[YZJsonProperty.children] = children; foreach (BPMProcStep step in steps) { if (!step.IsHumanStep) { continue; } children.Add(Serialize(cn, step)); } rv[YZJsonProperty.total] = children.Count; } //输出数据 rv[YZJsonProperty.success] = true; return(rv); }
public virtual void SaveMobileFormSetting(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); JObject post = request.GetPostData <JObject>(); MobileFormSetting mobileFormSetting = post.ToObject <MobileFormSetting>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMProcess.SaveMobileFormSetting(cn, processName, version, mobileFormSetting); } }
public virtual BPMProcess GetProcessDefine(HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path", null); Version version = request.GetVersion("version", null); BPMProcess process = new BPMProcess(); //获得数据 using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); process.Load(cn, path, version); } return(process); }
public virtual object GetMobileFormSetting(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); return(new { tables = BPMProcess.GetProcessGlobalTableIdentitys(cn, processName, version), mobileFormSetting = BPMProcess.GetMobileFormSetting(cn, processName, version) }); } }
public virtual object GetProcessProperty(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); return(new { GlobalTableIdentitys = BPMProcess.GetProcessGlobalTableIdentitys(cn, processName, version), Property = BPMProcess.GetProcessProperty(cn, processName, version), MessageGroups = BPMProcess.GetMessageGroups(cn, processName, version), Events = BPMProcess.GetEvents(cn, processName, version) }); } }
public virtual object SaveProcessAsNewVersion(HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path"); JObject post = request.GetPostData <JObject>(); BPMProcess process = post.ToObject <BPMProcess>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); process.Save(cn, path, null, true); } return(new { server = WebConfigurationManager.AppSettings["BPMServerName"], version = process.Version.ToString(2) }); }
/// <summary> /// Starts the miner process /// </summary> /// <returns></returns> protected virtual BPMProcess StartProcess() { var process = new BPMProcess(); IsMining = true; FormatPerMinerCoinCombo(); ObservableCollection <AccountMinerTypeExtraParams> AccountMinerTypeExtraParamsList = (ObservableCollection <AccountMinerTypeExtraParams>)Application.Current.Properties["AccountMinerTypeExtraParamsList"]; AccountMinerTypeExtraParams accountMinerTypeExtraParams = AccountMinerTypeExtraParamsList.First(x => x.MinerBaseType == MinerBaseType); if (accountMinerTypeExtraParams != null && accountMinerTypeExtraParams.ExtraParams != String.Empty) { // Add Extra Params MinerArguments = String.Format("{0} {1}", MinerArguments, accountMinerTypeExtraParams.ExtraParams); } process.Start(MinerWorkingDirectory, MinerArguments, MinerFileName, Hardware == HardwareType.AMD, MinerBaseType); process.MinerProcess.Exited += MinerExited; return(process); }
public virtual void Reject(HttpContext context) { YZRequest request = new YZRequest(context); int taskid = request.GetInt32("TaskID"); JObject jPost = request.GetPostData <JObject>(); string comments = (string)jPost["comments"]; string formdata = (string)jPost["formdata"]; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); if (!String.IsNullOrEmpty(formdata)) { BPMProcess.Post(cn, formdata); } BPMTask.Reject(cn, taskid, comments); } }
/// <summary> /// 加签 /// </summary> /// <param name="StepID">步骤</param> /// <param name="Action">节点</param> /// <param name="Comment">意见</param> /// <param name="Consign_ConsignUsers">加签人</param> private void Consign(int StepID, string Action, string Comment, string Consign_ConsignUsers) { try { StringBuilder sb = null; sb = new StringBuilder(); sb.Append(String.Format("<?xml version=\"1.0\"?>")); sb.Append(String.Format("<XForm>")); sb.Append(String.Format(@" <Header> <Method>Process</Method> <PID>{0}</PID> <Action>{1}</Action> <Comment>{2}</Comment> <ConsignEnabled>True</ConsignEnabled> <ConsignUsers>{3}</ConsignUsers> <ConsignRoutingType>Parallel</ConsignRoutingType> <ConsignReturnType>Return</ConsignReturnType> <InviteIndicateUsers></InviteIndicateUsers> </Header> <FormData> </FormData>", StepID, Action, Comment, Consign_ConsignUsers)); sb.Append(String.Format("</XForm>")); MemoryStream xmlStream = new MemoryStream(UTF8Encoding.UTF8.GetBytes(sb.ToString())); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); PostResult postResult = BPMProcess.Post(cn, xmlStream); if (postResult == null) { throw new Exception("审批失败"); } } } catch (Exception e) { throw new Exception(e.Message); } }
public virtual object GetProcessDefine(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); NodeItemCollection nodes = new NodeItemCollection(); LinkItemCollection links = new LinkItemCollection(); //获得数据 using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMProcess.GetTaskTraceInfo(cn, processName, version, out nodes, out links); } return(new { Nodes = nodes, Links = links }); }
public virtual void SaveProcessProperty(HttpContext context) { YZRequest request = new YZRequest(context); string folder = request.GetString("folder", ""); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); string path = System.IO.Path.Combine(folder, processName); JObject post = request.GetPostData <JObject>(); ProcessProperty property = post["Property"].ToObject <ProcessProperty>(); MessageGroupCollection messageGroups = post["MessageGroups"].ToObject <MessageGroupCollection>(); EventCollection events = post["Events"].ToObject <EventCollection>(); ACL acl = post["acl"].ToObject <ACL>(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); BPMProcess.SetProcessProperty(cn, processName, version, property, messageGroups, events); SecurityManager.SaveACL(cn, SecurityResType.Process, path, null, acl); } }