public DataManageEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { this.AdditionalParams = new List <QueryModel>(); this.ThreadID = base.EngineSharedModel?.CurrentThreadID; this.GetDataList = new List <VariableModel>(); this.SetDataList = new Dictionary <string, DataModel>(); }
public DocumentCodeHelper(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork, Domain.CodeBaseSharedModel codeBaseShared) { this.EngineSharedModel = engineSharedModel; this.CodeBaseShared = codeBaseShared; this.UnitOfWork = unitOfWork; }
public bool GetConfirmResult(string controlId, Guid formId, bool isGridCommand, string gridId = "", Guid?threadId = null, Guid?applicationPageId = null) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(formId); object control = dynamicForm.FindControl(isGridCommand ? gridId : controlId); DesignCodeModel designCode = null; if (control is ButtonHtml) { designCode = ((ButtonHtml)control).ConfirmDesignCodeModel; } if (control is DataGridHtml) { designCode = ((DataGridHtml)control).GetConfirmCode(controlId); } EngineSharedModel engineSharedModel = applicationPageId.HasValue ? new EngineSharedModel(applicationPageId.Value, HttpContext.Current.Request.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId) : new EngineSharedModel(threadId, dynamicForm.ProcessId, HttpContext.Current.Request.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); UnitOfWork unitOfWork = new UnitOfWork(); return(new DynamicCodeEngine(engineSharedModel, unitOfWork).ExecuteBooleanCode(designCode)); } }
public VariableTypeEngineBase(EngineSharedModel engineSharedModel, sysBpmsVariable variable, Guid?ProcessID, Guid?threadID, List <QueryModel> additionalParams, IUnitOfWork unitOfWork) : base(engineSharedModel, unitOfWork) { this.Variable = variable; this.ProcessID = ProcessID; this.ThreadID = threadID; this.AdditionalParams = additionalParams; }
public object ExecuteCode(string controlId, Guid formId, string commandId, Guid?threadId = null, Guid?applicationPageId = null) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(formId); object control = dynamicForm.FindControl(controlId); DesignCodeModel designCode = null; if (control is DataGridHtml) { designCode = ((DataGridHtml)control).GetCommandCode(commandId); } EngineSharedModel engineSharedModel = applicationPageId.HasValue ? new EngineSharedModel(applicationPageId.Value, HttpContext.Current.Request.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId) : new EngineSharedModel(threadId, dynamicForm.ProcessId, HttpContext.Current.Request.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); UnitOfWork unitOfWork = new UnitOfWork(); DynamicCodeEngine dynamicCodeEngine = new DynamicCodeEngine(engineSharedModel, unitOfWork); var result = dynamicCodeEngine.ExecuteScriptCode(designCode, new CodeBaseSharedModel(null)); //If in code any variable is set, it Will save them all at the end dynamicCodeEngine.SaveExternalVariable(result); return(new { result = result?.Result, listMessage = result?.CodeBaseShared.MessageList.Select(c => new { DisplayMessageType = c.DisplayMessageType.ToString(), c.Message }) }); } }
public object PostPopUp(Guid applicationPageId, string controlId = "") { EngineSharedModel engineSharedModel = new EngineSharedModel(applicationPageId, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); using (ApplicationPageEngine applicationPageEngine = new ApplicationPageEngine(engineSharedModel)) { PostFormResponseModel responseVM = applicationPageEngine.PostForm(controlId); if (!responseVM.IsSuccess) { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, null, isSubmit: false, responseVM.ListMessageModel, false)); } else { if (responseVM.IsSubmit) { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, listDownloadModel: responseVM.ListDownloadModel, isSubmit: true, responseVM.ListMessageModel )); } else { return(new EngineFormResponseDTO( base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, responseVM.ListDownloadModel, isSubmit: false, responseVM.ListMessageModel, true )); } } } }
public object GetPopUp(Guid formID) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(formID); Guid applicationId = dynamicForm.ApplicationPageID.Value; EngineSharedModel engineSharedModel = new EngineSharedModel(applicationId, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); using (ApplicationPageEngine applicationPageEngine = new ApplicationPageEngine(engineSharedModel)) { GetFormResponseModel responseVM = applicationPageEngine.GetForm(); if (responseVM.EngineFormModel != null) { string popUpUrl = UrlUtility.GetCartableApiUrl(base.MyRequest, base.PortalSettings.DefaultPortalAlias, nameof(CartablePageController.GetPopUp), nameof(CartablePageController), ""); string postUrl = UrlUtility.GetCartableApiUrl(base.MyRequest, base.PortalSettings.DefaultPortalAlias, nameof(CartablePageController.PostPopUp), nameof(CartablePageController), "", UrlUtility.GetParamsAsArray(new HttpRequestWrapper(base.MyRequest), new string[] { $"applicationPageId={applicationId}" }).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 HttpResponseMessage GetChartElement(Guid formId, string controlId, Guid?threadId = null) { sysBpmsDynamicForm dynamicForm = new DynamicFormService().GetInfo(formId); ChartHtml control = (ChartHtml)dynamicForm.FindControl(controlId); EngineSharedModel engineSharedModel = dynamicForm.ProcessId.HasValue ? new EngineSharedModel(threadId, dynamicForm.ProcessId, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId) : new EngineSharedModel(dynamicForm.ApplicationPageID.Value, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); control.Helper = HtmlElementHelper.MakeModel(engineSharedModel, new UnitOfWork(), HtmlElementHelperModel.e_FormAction.Onload, dynamicForm); control.FillData(); return(Request.CreateResponse(HttpStatusCode.OK, control)); }
public object GetValue(Guid formId, string controlId, Guid?threadId = null) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(formId); BindingElementBase control = (BindingElementBase)dynamicForm.FindControl(controlId); EngineSharedModel engineSharedModel = dynamicForm.ProcessId.HasValue ? new EngineSharedModel(threadId, dynamicForm.ProcessId, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId) : new EngineSharedModel(dynamicForm.ApplicationPageID.Value, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); UnitOfWork unitOfWork = new UnitOfWork(); control.Helper = HtmlElementHelper.MakeModel(engineSharedModel, unitOfWork, HtmlElementHelperModel.e_FormAction.Onload, dynamicForm); control.FillData(); return((control.Type == "HTMLCODE" || control.Type == "TITLE") ? control.Label : control.Value); } }
public static HtmlElementHelperModel MakeModel( EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork, HtmlElementHelperModel.e_FormAction formAction, sysBpmsDynamicForm mainDynamicForm) { return(new HtmlElementHelperModel( new DataManageEngine(engineSharedModel), unitOfWork, new ApplicationPageEngine(engineSharedModel, unitOfWork), formAction, new DynamicCodeEngine(engineSharedModel, unitOfWork), new DocumentEngine(engineSharedModel, unitOfWork), engineSharedModel?.BaseQueryModel, engineSharedModel?.ApiSessionID.ToStringObj(), mainDynamicForm.ConfigXmlModel.IsEncrypted)); }
public void GetDataGridReport(Guid formId, string controlId, string format, Guid?threadId = null) { sysBpmsDynamicForm dynamicForm = new DynamicFormService().GetInfo(formId); DataGridHtml control = (DataGridHtml)dynamicForm.FindControl(controlId); EngineSharedModel engineSharedModel = dynamicForm.ProcessId.HasValue ? new EngineSharedModel(threadId, dynamicForm.ProcessId, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId) : new EngineSharedModel(dynamicForm.ApplicationPageID.Value, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); control.Helper = HtmlElementHelper.MakeModel(engineSharedModel, new UnitOfWork(), HtmlElementHelperModel.e_FormAction.Onload, dynamicForm); control.FillDataItem(true); using (ReportEngine reportEngine = new ReportEngine(engineSharedModel, new UnitOfWork())) { reportEngine.PrintRdlcDataGrid(HttpContext.Current.Response, control, format == "pdf" ? DomainUtility.ReportExportType.PDF : DomainUtility.ReportExportType.Excel); } }
public List <ComboSearchItem> GetListElement(Guid formId, string controlId, Guid?threadId = null) { using (DynamicFormService dynamicFormService = new DynamicFormService()) { sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(formId); ListItemElementBase control = (ListItemElementBase)dynamicForm.FindControl(controlId); EngineSharedModel engineSharedModel = dynamicForm.ProcessId.HasValue ? new EngineSharedModel(threadId, dynamicForm.ProcessId, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId) : new EngineSharedModel(dynamicForm.ApplicationPageID.Value, base.MyRequest.GetList(base.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); UnitOfWork unitOfWork = new UnitOfWork(); control.Helper = HtmlElementHelper.MakeModel(engineSharedModel, unitOfWork, HtmlElementHelperModel.e_FormAction.Onload, dynamicForm); control.FillData(); return(control.Options.Select(item => new ComboSearchItem() { text = item.Label, id = item.Value, }).ToList()); } }
public object PostIndex(Guid applicationPageId, string controlId = "") { EngineSharedModel engineSharedModel = new EngineSharedModel(applicationPageId, base.MyRequest.GetList(this.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId); using (ApplicationPageEngine applicationPageEngine = new ApplicationPageEngine(engineSharedModel)) { PostFormResponseModel postFormResponseModel = applicationPageEngine.PostForm(controlId); if (!postFormResponseModel.IsSuccess) { return(new EngineFormResponseDTO(base.GetRedirectUrl(postFormResponseModel.RedirectUrlModel), false, null, false, postFormResponseModel?.ListMessageModel, false)); } else { return (new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(postFormResponseModel.RedirectUrlModel), true, listDownloadModel: postFormResponseModel.ListDownloadModel, false, postFormResponseModel.ListMessageModel )); } } }
public EngineFormModel PreviewForm(Guid formID, string userName) { sysBpmsDynamicForm dynamicForm = this.GetInfo(formID); EngineSharedModel engineSharedModel = dynamicForm.ApplicationPageID.HasValue ? new EngineSharedModel(dynamicForm.ApplicationPageID.Value, new List <QueryModel>(), userName, string.Empty) : new EngineSharedModel(Guid.Empty, dynamicForm.ProcessId, new List <QueryModel>(), userName, string.Empty); FormModel formModel = new FormModel(); //convert form xml code to json object JObject obj = JObject.Parse(dynamicForm.DesignJson); HtmlElementHelperModel htmlElementHelperModel = HtmlElementHelper.MakeModel(engineSharedModel, base.UnitOfWork, HtmlElementHelperModel.e_FormAction.Preview, dynamicForm); //if json object has a control with type = CONTENT if (obj != null && obj["type"].ToString() == "CONTENT") { formModel = new FormModel(obj, htmlElementHelperModel, null, null, dynamicForm, false); } EngineFormModel engineForm = dynamicForm.ApplicationPageID.HasValue ? new EngineFormModel(formModel, dynamicForm.ApplicationPageID) : new EngineFormModel(formModel, Guid.Empty, Guid.Empty, dynamicForm.ProcessId); return(engineForm); }
public BaseEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(unitOfWork) { this.EngineSharedModel = engineSharedModel; }
public ApplicationPageEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { }
public EntityCodeHelper(EngineSharedModel engineSharedModel, IQueryCodeHelper queryHelper, IUnitOfWork unitOfWork) { this.EngineSharedModel = engineSharedModel; this.UnitOfWork = unitOfWork; this.QueryHelper = queryHelper; }
public GatewayEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { }
public SystemicVariableTypeEngine(EngineSharedModel engineSharedModel, sysBpmsVariable variable, Guid?processID, Guid?threadID, List <QueryModel> additionalParams, IUnitOfWork unitOfWork = null) : base(engineSharedModel, variable, processID, threadID, additionalParams, unitOfWork) { }
public EntityDefEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { }
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 EntityVariableTypeEngine(EngineSharedModel engineSharedModel, sysBpmsVariable variable, Guid?processID, Guid?threadID, List <QueryModel> additionalParams, IUnitOfWork unitOfWork = null) : base(engineSharedModel, variable, processID, threadID, additionalParams, unitOfWork) { this.EntityDef = new EntityDefService(base.UnitOfWork).GetInfo(Variable.EntityDefID.Value); }
public void SetAccessInfoTo(sysBpmsThreadTask threadTask, Domain.sysBpmsTask task, EngineSharedModel engineSharedModel) { if (task.OwnerTypeLU.HasValue) { switch ((sysBpmsTask.e_OwnerTypeLU)task.OwnerTypeLU) { case sysBpmsTask.e_OwnerTypeLU.User: switch ((UserTaskRuleModel.e_UserAccessType)task.UserTaskRuleModel.AccessType) { case UserTaskRuleModel.e_UserAccessType.Static: threadTask.UpdateAccessInfo(task.UserID.ToGuidObj(), null); break; case UserTaskRuleModel.e_UserAccessType.Variable: Guid?variableUserID = new DataManageEngine(engineSharedModel, base.UnitOfWork).GetValueByBinding(task.UserTaskRuleModel.Variable).ToGuidObjNull(); if (!variableUserID.HasValue) { throw new Exception(LangUtility.Get("UserNotFound.Text", nameof(sysBpmsThreadTask))); } threadTask.UpdateAccessInfo(variableUserID, null); break; } break; case sysBpmsTask.e_OwnerTypeLU.Role: switch ((UserTaskRuleModel.e_RoleAccessType)task.UserTaskRuleModel.AccessType) { case UserTaskRuleModel.e_RoleAccessType.Static: //if this userTask must be seen by requester user, this add thread userId to new threadTask if (task.IsInRole(null, (int)sysBpmsDepartmentMember.e_RoleLU.Requester)) { threadTask.UpdateAccessInfo(engineSharedModel.CurrentThread?.UserID, null); } else { threadTask.UpdateAccessInfo(null, task.GetDepartmentRoles); } break; case UserTaskRuleModel.e_RoleAccessType.Variable: string roleName = new DataManageEngine(engineSharedModel, base.UnitOfWork).GetValueByBinding(task.UserTaskRuleModel.Variable).ToStringObj(); if (string.IsNullOrWhiteSpace(roleName)) { throw new Exception(LangUtility.Get("RoleNotFound.Text", nameof(sysBpmsThreadTask))); } task.SetRoleDepartment(roleName, task.UserTaskRuleModel.SpecificDepartmentId); //if this userTask must be seen by requester user, this add thread userId to new threadTask if (task.IsInRole(null, (int)sysBpmsDepartmentMember.e_RoleLU.Requester)) { threadTask.UpdateAccessInfo(engineSharedModel.CurrentThread?.UserID, null); } else { threadTask.UpdateAccessInfo(null, task.GetDepartmentRoles); } break; case UserTaskRuleModel.e_RoleAccessType.CorrespondentRole: Guid?userId = task.UserTaskRuleModel.UserType == (int)UserTaskRuleModel.e_UserType.CurrentUserID ? new UserService(base.UnitOfWork).GetInfo(engineSharedModel.CurrentUserName ?? "")?.ID : engineSharedModel.CurrentThread?.UserID; Guid?departmentId = new AccessCodeHelper(base.UnitOfWork).GetDepartmentHierarchyByUserId(userId.ToGuidObj(), task.UserTaskRuleModel.RoleCode.ToIntObj(), task.UserTaskRuleModel.GoUpDepartment); if (!departmentId.HasValue) { throw new Exception(LangUtility.Get("OrganizationNotFound.Text", nameof(sysBpmsThreadTask))); } threadTask.UpdateAccessInfo(null, new List <Tuple <Guid?, string> >() { new Tuple <Guid?, string>(departmentId, task.UserTaskRuleModel.RoleCode) }); break; } break; } } else { throw new Exception(LangUtility.Get("NextNoAccessSetting.Text", nameof(sysBpmsThreadTask))); } }
public VariableEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { }
public DynamicCodeEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { }
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 } }
public TaskEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork) { }
public List <sysBpmsThreadTask> GetMultiInstanceTask(Domain.sysBpmsTask task, EngineSharedModel engineSharedModel) { sysBpmsThreadTask threadTask = null; List <sysBpmsThreadTask> list = new List <sysBpmsThreadTask>(); switch ((sysBpmsTask.e_OwnerTypeLU)task.OwnerTypeLU) { case sysBpmsTask.e_OwnerTypeLU.User: switch ((UserTaskRuleModel.e_UserAccessType)task.UserTaskRuleModel.AccessType) { case UserTaskRuleModel.e_UserAccessType.Static: case UserTaskRuleModel.e_UserAccessType.Variable: string userId = task.UserID; if (task.UserTaskRuleModel.AccessType == (int)UserTaskRuleModel.e_UserAccessType.Variable) { userId = new DataManageEngine(engineSharedModel, base.UnitOfWork).GetValueByBinding(task.UserTaskRuleModel.Variable).ToStringObj(); } int i = 0; foreach (string item in userId.Split(',')) { threadTask = new sysBpmsThreadTask(); threadTask.Update(engineSharedModel.CurrentThreadID.Value, task.ID, DateTime.Now.AddSeconds(i++), null, string.Empty, 0, (int)sysBpmsThreadTask.e_StatusLU.New); threadTask.UpdateAccessInfo(item.ToGuidObj(), null); list.Add(threadTask); } break; } break; case sysBpmsTask.e_OwnerTypeLU.Role: switch ((UserTaskRuleModel.e_RoleAccessType)task.UserTaskRuleModel.AccessType) { case UserTaskRuleModel.e_RoleAccessType.Static: case UserTaskRuleModel.e_RoleAccessType.Variable: if (task.UserTaskRuleModel.AccessType == (int)UserTaskRuleModel.e_RoleAccessType.Variable) { task.SetRoleDepartment(new DataManageEngine(engineSharedModel, base.UnitOfWork).GetValueByBinding(task.UserTaskRuleModel.Variable).ToStringObj(), task.UserTaskRuleModel.SpecificDepartmentId); } foreach (var item in task.GetDepartmentRoles) { List <Guid> users = new DepartmentMemberService(base.UnitOfWork).GetList(item.Item1, item.Item2.ToIntObj(), null).Select(c => c.UserID).ToList(); //It is used for sequential task. int i = 0; foreach (Guid uId in users) { threadTask = new sysBpmsThreadTask(); threadTask.Update(engineSharedModel.CurrentThreadID.Value, task.ID, DateTime.Now.AddSeconds(i++), null, string.Empty, 0, (int)sysBpmsThreadTask.e_StatusLU.New); threadTask.UpdateAccessInfo(uId, null); list.Add(threadTask); } } break; case UserTaskRuleModel.e_RoleAccessType.CorrespondentRole: Guid?userId = task.UserTaskRuleModel.UserType == (int)UserTaskRuleModel.e_UserType.CurrentUserID ? new UserService(base.UnitOfWork).GetInfo(engineSharedModel.CurrentUserName ?? "")?.ID : engineSharedModel.CurrentThread?.UserID; Guid?departmentId = new AccessCodeHelper(base.UnitOfWork).GetDepartmentHierarchyByUserId(userId.ToGuidObj(), task.UserTaskRuleModel.RoleCode.ToIntObj(), task.UserTaskRuleModel.GoUpDepartment); if (!departmentId.HasValue) { throw new Exception(LangUtility.Get("OrganizationNotFound.Text", nameof(sysBpmsThreadTask))); } { List <Guid> users = new DepartmentMemberService(base.UnitOfWork).GetList(departmentId, task.UserTaskRuleModel.RoleCode.ToIntObj(), null).Select(c => c.UserID).ToList(); //It is used for sequential task. int i = 0; foreach (Guid uId in users) { threadTask = new sysBpmsThreadTask(); threadTask.Update(engineSharedModel.CurrentThreadID.Value, task.ID, DateTime.Now.AddSeconds(i++), null, string.Empty, 0, (int)sysBpmsThreadTask.e_StatusLU.New); threadTask.UpdateAccessInfo(uId, null); list.Add(threadTask); } } break; } break; } return(list); }
public object PostPopUp(Guid?applicationPageId = null, Guid?threadTaskID = null, Guid?formID = null, string controlId = "") { 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.PostForm(threadTaskID.Value, formID.Value, controlId, base.MyRequest.GetList(false, string.Empty).ToList()); } else { } 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 )); } } #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( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, null, isSubmit: false, responseVM.ListMessageModel, false)); } else { if (responseVM.IsSubmit) { return(new EngineFormResponseDTO( redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false, listDownloadModel: responseVM.ListDownloadModel, isSubmit: true, responseVM.ListMessageModel )); } else { return(new EngineFormResponseDTO( base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: true, responseVM.ListDownloadModel, isSubmit: false, responseVM.ListMessageModel, true )); } } #endregion } }
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 }); } }