public ThreadDetailDTO GetThreadDetails(Guid threadId) { using (ThreadService threadService = new ThreadService()) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { ThreadDetailDTO threadDetailDTO = new ThreadDetailDTO( threadService.GetInfo(threadId, new string[] { nameof(sysBpmsThread.User), nameof(sysBpmsThread.Process) }), threadTaskService.GetList(threadId, (int)sysBpmsTask.e_TypeLU.UserTask, null, null, new string[] { $"{nameof(sysBpmsThreadTask.Task)}.{nameof(sysBpmsThreadTask.Task.Element)}", nameof(sysBpmsThreadTask.User) }).Select(c => new ThreadHistoryDTO(c)).ToList()); List <sysBpmsDynamicForm> listForms = dynamicFormService.GetList(threadDetailDTO.ProcessID, null, null, "", true, null); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(threadId, threadDetailDTO.ProcessID, this.MyRequest.GetList(false, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { foreach (var item in listForms) { var result = processEngine.GetContentHtmlByFormID(item.ID, true); EngineFormModel engineFormModel = new EngineFormModel(result.FormModel, threadId, null, threadDetailDTO.ProcessID); engineFormModel.GetPopUpUrl = string.Empty; threadDetailDTO.ListOverviewForms.Add(engineFormModel); } } return(threadDetailDTO); } } } }
public object GetBeginTask(Guid ProcessID) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { (ResultOperation result, List <MessageModel> msgModel) = new ProcessEngine(new EngineSharedModel(currentThread: null, currentProcessID: ProcessID, baseQueryModel: base.MyRequest.GetList(false, base.ApiSessionId).ToList(), currentUserName: base.ClientUserName, apiSessionId: base.ApiSessionId)).StartProcess(base.MyUser.ID); if (result.IsSuccess) { sysBpmsThreadTask threadTask = threadTaskService.GetList(((sysBpmsThread)result.CurrentObject).ID, (int)sysBpmsTask.e_TypeLU.UserTask, null, (int)sysBpmsThreadTask.e_StatusLU.New).LastOrDefault(); return(new { MessageList = msgModel, ThreadTaskID = threadTask.ID, Result = true, }); } else { return(new { MessageList = new List <MessageModel>() { new MessageModel(DisplayMessageType.error, result.GetErrors()) }, Result = false, }); } } }
public object GetThreadDetail(Guid ThreadID) { using (ThreadService threadService = new ThreadService()) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { ThreadDetailDTO threadDetailDTO = new ThreadDetailDTO( threadService.GetInfo(ThreadID, new string[] { nameof(sysBpmsThread.User), nameof(sysBpmsThread.Process) }), threadTaskService.GetList(ThreadID, (int)sysBpmsTask.e_TypeLU.UserTask, null, null, new string[] { $"{nameof(sysBpmsThreadTask.Task)}.{nameof(sysBpmsThreadTask.Task.Element)}", nameof(sysBpmsThreadTask.User) }).Select(c => new ThreadHistoryDTO(c)).ToList()); List <sysBpmsDynamicForm> listForms = dynamicFormService.GetList(threadDetailDTO.ProcessID, null, null, "", true, null); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(ThreadID, threadDetailDTO.ProcessID, this.MyRequest.GetList(false, HttpContext.Current.Session.SessionID).ToList(), base.UserInfo.Username, HttpContext.Current.Session.SessionID))) { foreach (var item in listForms) { var result = processEngine.GetContentHtmlByFormID(item.ID, true); EngineFormModel engineFormModel = new EngineFormModel(result.FormModel, ThreadID, null, threadDetailDTO.ProcessID); engineFormModel.GetPopUpUrl = UrlUtility.GetCartableApiUrl(base.MyRequest, base.PortalSettings.DefaultPortalAlias, "GetPopUp", "CartableThread", ""); threadDetailDTO.ListOverviewForms.Add(engineFormModel); } } return(threadDetailDTO); } } } }
public object GetThreadDetail(Guid ThreadID) { using (ThreadService threadService = new ThreadService()) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { ThreadDetailDTO threadDetailDTO = new ThreadDetailDTO( threadService.GetInfo(ThreadID, new string[] { nameof(sysBpmsThread.User), nameof(sysBpmsThread.Process) }), threadTaskService.GetList(ThreadID, (int)sysBpmsTask.e_TypeLU.UserTask, null, null, new string[] { $"{nameof(sysBpmsThreadTask.Task)}.{nameof(sysBpmsThreadTask.Task.Element)}", nameof(sysBpmsThreadTask.User) }).Select(c => new ThreadHistoryDTO(c)).ToList()); List <sysBpmsDynamicForm> listForms = dynamicFormService.GetList(threadDetailDTO.ProcessID, null, null, "", true, null); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(ThreadID, threadDetailDTO.ProcessID, this.MyRequest.GetList(false, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { foreach (var item in listForms) { var result = processEngine.GetContentHtmlByFormID(item.ID, true); EngineFormModel engineFormModel = new EngineFormModel(result.FormModel, ThreadID, null, threadDetailDTO.ProcessID); string popUpUrl = UrlUtility.GetCartableApiUrl(base.MyRequest, base.PortalSettings.DefaultPortalAlias, nameof(CartableThreadController.GetPopUp), nameof(CartableThreadController), ""); engineFormModel.SetReadOnlyUrls(popUpUrl, new HttpRequestWrapper(base.MyRequest), base.PortalSettings.DefaultPortalAlias, FormTokenUtility.GetFormToken(base.ApiSessionId, engineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, engineFormModel?.FormModel?.IsEncrypted ?? false)); threadDetailDTO.ListOverviewForms.Add(engineFormModel); } } return(threadDetailDTO); } } } }
private BeginTaskResponseModel BeginTask(Guid processID) { List <QueryModel> baseQueryModel = base.MyRequest.GetList(false, string.Empty).ToList(); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(currentThread: null, currentProcessID: processID, baseQueryModel: baseQueryModel, currentUserName: base.ClientUserName, apiSessionId: base.ApiSessionId))) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (UserService userService = new UserService()) { var result = processEngine.StartProcess(userService.GetInfo(base.ClientUserName)?.ID); if (result.Item1.IsSuccess) { sysBpmsThreadTask threadTask = threadTaskService.GetList(((sysBpmsThread)result.Item1.CurrentObject).ID, (int)sysBpmsTask.e_TypeLU.UserTask, null, (int)sysBpmsThreadTask.e_StatusLU.New).LastOrDefault(); return(new BeginTaskResponseModel(string.Join(",", result.Item2), true, ((sysBpmsThread)result.Item1.CurrentObject)?.ID, threadTask?.ID));; } else { return(new BeginTaskResponseModel(result.Item1.GetErrors(), false, null, null)); } } } } }
public object PostIndex(Guid threadTaskID, Guid stepID, bool?goNext = null, string controlId = "") { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsThreadTask threadTask = new ThreadTaskService().GetInfo(threadTaskID, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(threadTask.Thread, threadTask.Thread.ProcessID, this.MyRequest.GetList(dynamicFormService.GetInfoByStepID(stepID).ConfigXmlModel.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { PostTaskFormResponseModel responseVM = processEngine.PostTaskForm(threadTaskID, stepID, goNext, controlId); if (!responseVM.IsSuccess) { return(new EngineFormResponseDTO(redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, null, false, messageList: responseVM.ListMessageModel, false)); } else { if (responseVM.IsSubmit) { if (responseVM.IsNextPrevious == true) { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, listDownloadModel: responseVM.ListDownloadModel, messageList: responseVM.ListMessageModel ) { StepID = responseVM.StepID.Value, }); } else { return(new EngineFormResponseDTO( redirectUrl: string.IsNullOrWhiteSpace(base.GetRedirectUrl(responseVM.RedirectUrlModel)) ? "CartableManage" : base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, listDownloadModel: responseVM.ListDownloadModel, messageList: responseVM.ListMessageModel )); } } else { return new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, listDownloadModel: responseVM.ListDownloadModel, messageList: responseVM.ListMessageModel ) { StepID = responseVM.StepID.Value, } }; } } } } } }
public object GetPopUp(Guid threadTaskID, Guid formID) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsThreadTask threadTask = threadTaskService.GetInfo(threadTaskID, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine ProcessEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, this.MyRequest.GetList(dynamicFormService.GetInfo(formID).ConfigXmlModel.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { GetTaskFormResponseModel responseVM = ProcessEngine.GetForm(threadTaskID, formID); if (responseVM.EngineFormModel != null) { string popUpUrl = UrlUtility.GetCartableApiUrl(base.MyRequest, base.PortalSettings.DefaultPortalAlias, nameof(CartableThreadController.GetPopUp), nameof(CartableThreadController), "", "threadTaskID=" + threadTaskID); string postUrl = UrlUtility.GetCartableApiUrl(base.MyRequest, base.PortalSettings.DefaultPortalAlias, nameof(CartableThreadController.PostPopUp), nameof(CartableThreadController), "", UrlUtility.GetParamsAsArray(new HttpRequestWrapper(base.MyRequest), new string[] { $"formID={formID}", $"threadTaskID={threadTaskID}", $"stepID={responseVM.EngineFormModel.FormModel.StepID}" }).ToArray()); responseVM.EngineFormModel.SetUrls(popUpUrl, postUrl, new HttpRequestWrapper(base.MyRequest), base.PortalSettings.DefaultPortalAlias, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false)); } return(new { Model = responseVM?.EngineFormModel, MessageList = responseVM?.ListMessageModel.Select(c => new PostMethodMessage(c.Message, c.DisplayMessageType)), RedirectUrl = base.GetRedirectUrl(responseVM?.RedirectUrlModel), Result = true, }); } } } }
public void BeginTask_Recruitment_Process_With_Local_Variable_MustFail() { //Arrange string userName = "******"; using (TaskService taskService = new TaskService()) { var task = taskService.GetInfo(new Guid("7a5b0b25-9da5-4e4e-b743-4f51055b95e0")); task.UserID = "1A7BDA0B-1931-455D-A964-03A76708DB0F"; task.OwnerTypeLU = (int)sysBpmsTask.e_OwnerTypeLU.User; taskService.Update(task); } using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(currentThread: null, currentProcessID: new Guid("3E9E69D2-9232-4F07-8B63-08FBDD778F45"), baseQueryModel: new List <QueryModel>(), currentUserName: userName, apiSessionId: ""))) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (UserService userService = new UserService()) { //Act (ResultOperation result, List <MessageModel> messageList) = processEngine.StartProcess(userService.GetInfo(userName)?.ID); //Assert Assert.False(result.IsSuccess); Assert.Null(result.CurrentObject); } } } }
public PostTaskFormResponseModel PostForm(Guid threadTaskID, Guid formID, string controlId = "") { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { sysBpmsThreadTask threadTask = threadTaskService.GetInfo(threadTaskID, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { return(processEngine.PostForm(threadTaskID, formID, controlId)); } } }
public GetTaskFormResponseModel GetForm(Guid threadTaskID, Guid formID, bool?cAccess = null) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { List <QueryModel> baseQueryModel = base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(); sysBpmsThreadTask threadTask = new ThreadTaskService().GetInfo(threadTaskID, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, baseQueryModel, base.ClientUserName, base.ApiSessionId))) { return(processEngine.GetForm(threadTaskID, formID, cAccess)); } } }
//It retrieves open threads which are in person kartable or step. public object GetIndex([System.Web.Http.FromUri] KartableIndexSearchDTO indexSearchVM) { //base.SetMenuIndex(1); using (ThreadTaskService threadTaskService = new ThreadTaskService()) { List <sysBpmsThreadTask> list = threadTaskService.GetListKartable(MyUser.ID, new int[] { (int)sysBpmsThreadTask.e_StatusLU.New, (int)sysBpmsThreadTask.e_StatusLU.Ongoing }, indexSearchVM.GetPagingProperties); indexSearchVM.Update(list.Select(c => new KartableDTO(c)).ToList()); return(indexSearchVM); } }
public override void DoWork() { try { using (ThreadEventService threadEventService = new ThreadEventService()) { List <sysBpmsThreadEvent> listThreadEvent = threadEventService.GetTimerActive(new string[] { nameof(sysBpmsThreadEvent.Thread), nameof(sysBpmsThreadEvent.Event) }); foreach (var Item in listThreadEvent) { using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(Item.Thread, Item.Thread.ProcessID, null, string.Empty, string.Empty))) { (ResultOperation result, List <MessageModel> message) = processEngine.ContinueProcess(Item, true); if (result.IsSuccess) { //Add new event If it is an interval timer event if (Item.Event.SubTypeTimerEventModel?.Type == (int)SubTypeTimerEventModel.e_Type.Interval && Item.Event.CancelActivity != true) { if (Item.ThreadTaskID.HasValue) { sysBpmsThreadTask boundedThreadTask = new ThreadTaskService().GetInfo(Item.ThreadTaskID.Value); if (boundedThreadTask.StatusLU != (int)sysBpmsThreadTask.e_StatusLU.Done) { new EventEngine(processEngine.EngineSharedModel).NextTimerExecuteDate(Item.Event, Item.ThreadTaskID); } } } } else { DotNetNuke.Services.Exceptions.Exceptions.LogException(new Exception(result.GetErrors())); } } } } this.ScheduleHistoryItem.Succeeded = true; } catch (Exception ex) { this.ScheduleHistoryItem.Succeeded = false; this.Errored(ref ex); DotNetNuke.Services.Exceptions.Exceptions.LogException(ex); } }
public List <Guid> GetAccessibleThreadTasks(Guid threadId) { List <Guid> listItems = new List <Guid>(); using (ThreadTaskService threadTaskService = new ThreadTaskService()) { List <sysBpmsThreadTask> listThreadTask = threadTaskService.GetListRunning(threadId); foreach (sysBpmsThreadTask item in listThreadTask) { using (UserService userService = new UserService()) if (threadTaskService.CheckAccess(item.ID, userService.GetInfo(base.ClientUserName)?.ID, item.Task.ProcessID, false, true).Item1) { listItems.Add(item.ID); } } } return(listItems); }
public object PostPopUp(Guid threadTaskID, Guid formID, string controlId = "") { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsThreadTask threadTask = threadTaskService.GetInfo(threadTaskID, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine ProcessEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, this.MyRequest.GetList(dynamicFormService.GetInfo(formID).ConfigXmlModel.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { PostTaskFormResponseModel responseVM = ProcessEngine.PostForm(threadTaskID, formID, controlId); if (!responseVM.IsSuccess) { return(new EngineFormResponseDTO(redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, null, false, messageList: responseVM.ListMessageModel, false)); } else { if (responseVM.IsSubmit) { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, listDownloadModel: responseVM.ListDownloadModel, isSubmit: true, responseVM.ListMessageModel, true )); } else { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, listDownloadModel: responseVM.ListDownloadModel, isSubmit: false, responseVM.ListMessageModel )); } } } } } }
public void BeginTask_Recruitment_Process_With_Local_Variable_ShouldPassSuccessfully() { //Arrange string userName = "******"; using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(currentThread: null, currentProcessID: new Guid("3E9E69D2-9232-4F07-8B63-08FBDD778F45"), baseQueryModel: new List <QueryModel>(), currentUserName: userName, apiSessionId: ""))) { using (ThreadTaskService threadTaskService = new ThreadTaskService()) { using (UserService userService = new UserService()) { //Act (ResultOperation result, List <MessageModel> messageList) = processEngine.StartProcess(userService.GetInfo(userName)?.ID); //Assert Assert.True(result.IsSuccess); sysBpmsThreadTask threadTask = threadTaskService.GetList(((sysBpmsThread)result.CurrentObject).ID, (int)sysBpmsTask.e_TypeLU.UserTask, null, (int)sysBpmsThreadTask.e_StatusLU.New).LastOrDefault(); Assert.NotNull(threadTask); } } } }
public object GetIndex(Guid?threadTaskID = null, Guid?stepID = null, Guid?applicationPageId = null, Guid?formId = null, Guid?threadId = null) { SingleActionSettingDTO setting = base.GetSetting(); try { if (setting.ProcessID.HasValue) { #region .:: Thread ::. //If bpms engine is in different domain. EngineProcessProxy engineProcessProxy = null; if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { engineProcessProxy = new EngineProcessProxy(setting.WebApiAddress, setting.WebServicePass, base.ClientUserName, ApiUtility.GetIPAddress(), base.ApiSessionId, this.IsEncrypted); } if (!threadTaskID.HasValue && !threadId.HasValue) { //begin Process BeginTaskResponseModel beginTaskResponseVM = null; //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { beginTaskResponseVM = engineProcessProxy.BeginTask(setting.ProcessID.Value, base.MyRequest.GetList(false, string.Empty).ToList()); } else { beginTaskResponseVM = this.BeginTask(setting.ProcessID.Value); } threadTaskID = beginTaskResponseVM.ThreadTaskID; if (!beginTaskResponseVM.Result) { return(new { MessageList = new List <PostMethodMessage>() { new PostMethodMessage(beginTaskResponseVM.Message, DisplayMessageType.error) }, Result = false, setting.ShowCardBody }); } } if (!threadTaskID.HasValue && threadId.HasValue) { //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { threadTaskID = engineProcessProxy.GetAccessibleThreadTasks(threadId.Value).FirstOrDefault(); } else { threadTaskID = this.GetAccessibleThreadTasks(threadId.Value).FirstOrDefault(); } if (!threadTaskID.HasValue || threadTaskID == Guid.Empty) { ThreadDetailDTO threadDetailDTO = null; //show history //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { threadDetailDTO = engineProcessProxy.GetThreadDetails(threadId.Value); } else { threadDetailDTO = this.GetThreadDetails(threadId.Value); } return(new { ThreadDetailModel = threadDetailDTO, Result = true, setting.ShowCardBody }); } } GetTaskFormResponseModel responseVM = null; //If it must load end process form. if (formId.HasValue) { //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { responseVM = engineProcessProxy.GetForm(threadTaskID.Value, formId.Value, base.MyRequest.GetList(false, string.Empty).ToList(), false); } else { //if engine is in same domain, call it directly. using (ThreadTaskService threadTaskService = new ThreadTaskService()) { sysBpmsThreadTask threadTask = new ThreadTaskService().GetInfo(threadTaskID.Value, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine ProcessEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) responseVM = ProcessEngine.GetForm(threadTask.ID, formId.Value, false); } } if (responseVM.EngineFormModel != null) { responseVM.EngineFormModel.FormModel.HasSubmitButton = true; } } else { if (threadTaskID.HasValue) { //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { engineProcessProxy.GetTaskForm(threadTaskID.Value, stepID, base.MyRequest.GetList(false, string.Empty).ToList()); } else { //If engine is in same domain, call it directly. using (ThreadTaskService threadTaskService = new ThreadTaskService()) { sysBpmsThreadTask threadTask = new ThreadTaskService().GetInfo(threadTaskID.Value, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine ProcessEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) responseVM = ProcessEngine.GetTaskForm(threadTaskID.Value, stepID); } } } else { responseVM = null; } } if (responseVM?.EngineFormModel != null) { string popUpUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.GetPopUp), nameof(SingleActionWorkerController), "", "threadTaskID=" + threadTaskID); string postUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.PostIndex), nameof(SingleActionWorkerController), "", UrlUtility.GetParamsAsArray(new HttpRequestWrapper(base.MyRequest), new string[] { $"threadTaskID={threadTaskID}", $"stepID={responseVM.EngineFormModel.FormModel.StepID}" }).ToArray()); //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { responseVM.EngineFormModel.SetUrlsForSingleAction(base.PortalSettings.DefaultPortalAlias, new HttpRequestWrapper(base.MyRequest), popUpUrl, postUrl, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false), base.TabModuleID); } else { responseVM.EngineFormModel.SetUrls(popUpUrl, postUrl, new HttpRequestWrapper(base.MyRequest), base.PortalSettings.DefaultPortalAlias, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false)); } return(new { Model = responseVM?.EngineFormModel, MessageList = responseVM?.ListMessageModel.Select(c => new PostMethodMessage(c.Message, c.DisplayMessageType)), RedirectUrl = base.GetRedirectUrl(responseVM?.RedirectUrlModel), Result = true, setting.ShowCardBody }); } else { return new { MessageList = new List <PostMethodMessage>() { new PostMethodMessage("Error in getting information", DisplayMessageType.error) }, Result = false, setting.ShowCardBody } }; #endregion } else { #region .:: Application Page ::. applicationPageId = applicationPageId ?? setting.ApplicationPageID; GetFormResponseModel responseVM = null; //if bpms engine is in different domain if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { EngineApplicationProxy engineApplicationProxy = new EngineApplicationProxy(setting.WebApiAddress, setting.WebServicePass, base.ClientUserName, ApiUtility.GetIPAddress(), base.ApiSessionId, this.IsEncrypted); responseVM = engineApplicationProxy.GetForm(applicationPageId, null, base.MyRequest.GetList(false, string.Empty).ToList()); } else { EngineSharedModel engineSharedModel = new EngineSharedModel(applicationPageId.Value, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); using (ApplicationPageEngine applicationPageEngine = new ApplicationPageEngine(engineSharedModel)) responseVM = applicationPageEngine.GetForm(); } if (responseVM?.EngineFormModel != null) { string popUpUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.GetPopUp), nameof(SingleActionWorkerController), ""); string postUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.PostIndex), nameof(SingleActionWorkerController), "", UrlUtility.GetParamsAsArray(new HttpRequestWrapper(base.MyRequest), new string[] { $"applicationPageId={applicationPageId}" }).ToArray()); if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { responseVM.EngineFormModel.SetUrlsForSingleAction(base.PortalSettings.DefaultPortalAlias, new HttpRequestWrapper(base.MyRequest), popUpUrl, postUrl, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false), base.TabModuleID); } else { responseVM.EngineFormModel.SetUrls(popUpUrl, postUrl, new HttpRequestWrapper(base.MyRequest), base.PortalSettings.DefaultPortalAlias, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false)); } return(new { Model = responseVM?.EngineFormModel, MessageList = responseVM?.ListMessageModel.Select(c => new PostMethodMessage(c.Message, c.DisplayMessageType)), RedirectUrl = base.GetRedirectUrl(responseVM?.RedirectUrlModel), Result = true, setting.ShowCardBody }); } else { return new { MessageList = new List <PostMethodMessage>() { new PostMethodMessage("Error while getting information", DisplayMessageType.error) }, Result = false, setting.ShowCardBody } }; #endregion } } catch { return(new { MessageList = new List <PostMethodMessage>() { new PostMethodMessage("Setting is not complete", DisplayMessageType.error) }, Result = false, setting.ShowCardBody }); } }
public object PostIndex(Guid?applicationPageId = null, Guid?threadTaskID = null, string controlId = "", Guid?stepID = null, bool?goNext = null) { SingleActionSettingDTO setting = base.GetSetting(); if (setting.ProcessID.HasValue) { #region .:: Thread ::. PostTaskFormResponseModel responseVM = null; //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { EngineProcessProxy engineProcessProxy = new EngineProcessProxy(setting.WebApiAddress, setting.WebServicePass, base.ClientUserName, ApiUtility.GetIPAddress(), base.ApiSessionId, this.IsEncrypted); responseVM = engineProcessProxy.PostTaskForm(threadTaskID.Value, controlId, stepID.Value, goNext, base.MyRequest.GetList(false, string.Empty).ToList()); } else { //If engine is in same domain, call it directly. using (ThreadTaskService threadTaskService = new ThreadTaskService()) { sysBpmsThreadTask threadTask = threadTaskService.GetInfo(threadTaskID.Value, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(threadTask.Thread, threadTask.Thread.ProcessID, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) { responseVM = processEngine.PostTaskForm(threadTask.ID, stepID.Value, goNext, controlId); } } } if (!responseVM.IsSuccess) { return(new EngineFormResponseDTO(redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, null, false, messageList: responseVM.ListMessageModel, false)); } else { if (responseVM.IsSubmit) { if (responseVM.IsNextPrevious == true) { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, listDownloadModel: responseVM.ListDownloadModel, messageList: responseVM.ListMessageModel ) { StepID = responseVM.StepID.Value, }); } else { return new EngineFormResponseDTO( redirectUrl: string.IsNullOrWhiteSpace(base.GetRedirectUrl(responseVM.RedirectUrlModel)) ? "CartableManage" : base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: setting.ProcessEndFormID.HasValue, listDownloadModel: responseVM.ListDownloadModel, messageList: responseVM.ListMessageModel ) { EndAppPageID = setting.ProcessEndFormID, StepID = responseVM?.StepID, } }; } else { return new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, listDownloadModel: responseVM.ListDownloadModel, messageList: responseVM.ListMessageModel ) { StepID = responseVM.StepID.Value, } }; } #endregion } else { #region .:: Application ::. PostFormResponseModel responseVM = null; //if bpms engine is in different domain if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { EngineApplicationProxy engineApplicationProxy = new EngineApplicationProxy(setting.WebApiAddress, setting.WebServicePass, base.ClientUserName, ApiUtility.GetIPAddress(), base.ApiSessionId, this.IsEncrypted); responseVM = engineApplicationProxy.PostForm(applicationPageId.Value, controlId, base.MyRequest.GetList(false, string.Empty).ToList()); } else { EngineSharedModel engineSharedModel = new EngineSharedModel(applicationPageId.Value, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); using (ApplicationPageEngine applicationPageEngine = new ApplicationPageEngine(engineSharedModel)) responseVM = applicationPageEngine.PostForm(controlId); } if (!responseVM.IsSuccess) { return(new EngineFormResponseDTO(base.GetRedirectUrl(responseVM.RedirectUrlModel), false, null, false, responseVM?.ListMessageModel, false)); } else { return (new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, listDownloadModel: responseVM.ListDownloadModel, isSubmit: responseVM.IsSubmit, responseVM.ListMessageModel, submittedHtmlMessage: setting.AppPageSubmitMessage )); } #endregion } }
public object GetPopUp(Guid formID, Guid?threadTaskID = null) { SingleActionSettingDTO setting = base.GetSetting(); if (setting.ProcessID.HasValue) { #region .:: Thread ::. GetTaskFormResponseModel responseVM = null; //If bpms engine is in different domain. if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { responseVM = new EngineProcessProxy(setting.WebApiAddress, setting.WebServicePass, base.ClientUserName, ApiUtility.GetIPAddress(), base.ApiSessionId, this.IsEncrypted).GetForm(threadTaskID.Value, formID, base.MyRequest.GetList(false, string.Empty).ToList()); } else { //if engine is in same domain, call it directly. using (ThreadTaskService threadTaskService = new ThreadTaskService()) { sysBpmsThreadTask threadTask = new ThreadTaskService().GetInfo(threadTaskID.Value, new string[] { nameof(sysBpmsThreadTask.Thread) }); using (ProcessEngine ProcessEngine = new ProcessEngine(new EngineSharedModel(threadTask.ThreadID, threadTask.Thread.ProcessID, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId))) responseVM = ProcessEngine.GetForm(threadTask.ID, formID, null); } } if (responseVM.EngineFormModel != null) { string popUpUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.GetPopUp), nameof(SingleActionWorkerController), "", "threadTaskID=" + threadTaskID); string postUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.PostPopUp), nameof(SingleActionWorkerController), "", UrlUtility.GetParamsAsArray(new HttpRequestWrapper(base.MyRequest), new string[] { $"formID={formID}", $"threadTaskID={threadTaskID}", $"stepID={responseVM.EngineFormModel.FormModel.StepID}" }).ToArray()); if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { responseVM.EngineFormModel.SetUrlsForSingleAction(base.PortalSettings.DefaultPortalAlias, new HttpRequestWrapper(base.MyRequest), popUpUrl, postUrl, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false), base.TabModuleID); } else { responseVM.EngineFormModel.SetUrls(popUpUrl, postUrl, new HttpRequestWrapper(base.MyRequest), base.PortalSettings.DefaultPortalAlias, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false)); } } return(new { Model = responseVM?.EngineFormModel, MessageList = responseVM?.ListMessageModel.Select(c => new PostMethodMessage(c.Message, c.DisplayMessageType)), RedirectUrl = base.GetRedirectUrl(responseVM?.RedirectUrlModel), Result = true, }); #endregion } else { #region .:: Application ::. GetFormResponseModel responseVM = null; //if bpms engine is in different domain if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { EngineApplicationProxy engineApplicationProxy = new EngineApplicationProxy(setting.WebApiAddress, setting.WebServicePass, base.ClientUserName, ApiUtility.GetIPAddress(), base.ApiSessionId, this.IsEncrypted); responseVM = engineApplicationProxy.GetForm(null, formID, new HttpRequestWrapper(base.MyRequest).GetList(false, string.Empty).ToList()); } else { using (DynamicFormService dynamicFormService = new DynamicFormService()) { EngineSharedModel engineSharedModel = new EngineSharedModel(dynamicFormService.GetInfo(formID).ApplicationPageID.Value, base.MyRequest.GetList(false, string.Empty).ToList(), base.ClientUserName, base.ApiSessionId); using (ApplicationPageEngine applicationPageEngine = new ApplicationPageEngine(engineSharedModel)) responseVM = applicationPageEngine.GetForm(); } } if (responseVM.EngineFormModel != null) { string popUpUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.GetPopUp), nameof(SingleActionWorkerController), ""); string postUrl = UrlUtility.GetSingleActionApiUrl(base.MyRequest, base.TabModuleID, base.PortalSettings.DefaultPortalAlias, nameof(SingleActionWorkerController.PostPopUp), nameof(SingleActionWorkerController), "", UrlUtility.GetParamsAsArray(new HttpRequestWrapper(base.MyRequest), new string[] { $"applicationPageId={responseVM.EngineFormModel.ApplicationID}" }).ToArray()); if (!string.IsNullOrWhiteSpace(setting.WebApiAddress)) { responseVM.EngineFormModel.SetUrlsForSingleAction(base.PortalSettings.DefaultPortalAlias, new HttpRequestWrapper(base.MyRequest), popUpUrl, postUrl, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false), base.TabModuleID); } else { responseVM.EngineFormModel.SetUrls(popUpUrl, postUrl, new HttpRequestWrapper(base.MyRequest), base.PortalSettings.DefaultPortalAlias, FormTokenUtility.GetFormToken(base.ApiSessionId, responseVM?.EngineFormModel?.FormModel?.ContentHtml?.DynamicFormID ?? Guid.Empty, responseVM?.EngineFormModel?.FormModel?.IsEncrypted ?? false)); } } return(new { Model = responseVM?.EngineFormModel, MessageList = responseVM?.ListMessageModel.Select(c => new PostMethodMessage(c.Message, c.DisplayMessageType)), RedirectUrl = base.GetRedirectUrl(responseVM?.RedirectUrlModel), Result = true, }); #endregion } }