protected virtual ActionResult Resume(string submitButton, Guid workflowKey, [DeserializeAttribute] IWizardModel Wizard, IStepViewModel stepModel) { this.InitializeWorkflowType(Wizard.WorkflowType); WorkflowService = new WorkflowService((System.Activities.Activity)GetNewWorfklowActivityIntance()); if (ModelState.IsValid || submitButton != "Next" || stepModel.DontValidateNextButton) { //Persist Models Wizard.Steps[Wizard.CurrentStepIndex] = stepModel; Wizard.Command = submitButton; //Wizard.Save(); Wizard.SetUrlHelper(System.Web.HttpContext.Current.Request.RequestContext); //Resume Workflow WorkflowService.ResumeWorkflow(Wizard); WorkflowService.RunWorkflow(Wizard, string.Empty); WorkflowService.Unload(); Providers.WizardModelStoreProviderManager.Provider.SaveByKey(Wizard.Id.ToString(), Wizard); //Wizard.Save(); ModelState.Clear(); if (WorkflowService.IsCompleted || !string.IsNullOrEmpty(Wizard.ReturnUrl)) { return(Redirect(Wizard.ReturnUrl)); } else { return(View("Index", Wizard)); } } return(View("Index", Wizard)); }
protected virtual ActionResult Resume(Guid workflowKey, System.Web.HttpContext Context) { //Load Store from Provider IWizardModel item = (IWizardModel)Providers.WizardModelStoreProviderManager.Provider.LoadFromKey(workflowKey.ToString()); this.InitializeWorkflowType(item.WorkflowType); WorkflowService = new WorkflowService((System.Activities.Activity)GetNewWorfklowActivityIntance()); item.UserPrincipal = Context.User; item.SetUrlHelper(Context.Request.RequestContext); // Determine which workflow step wizard is at, this would be were persisted data would be loaded from model String step = WorkflowService.ResumeWorkflow(item); WorkflowService.Unload(); if (WorkflowService.IsCompleted || !string.IsNullOrEmpty(item.ReturnUrl)) { return(Redirect(item.ReturnUrl)); } else { return(View("Index", item)); } }