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
                    })
                });
            }
        }
Пример #6
0
        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
                                   ));
                    }
                }
            }
        }
Пример #7
0
        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);
     }
 }
Пример #10
0
 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));
 }
Пример #11
0
        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);
            }
        }
Пример #12
0
 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());
     }
 }
Пример #13
0
        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
                             ));
                }
            }
        }
Пример #14
0
        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);
        }
Пример #15
0
 public BaseEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(unitOfWork)
 {
     this.EngineSharedModel = engineSharedModel;
 }
Пример #16
0
 public ApplicationPageEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork)
 {
 }
Пример #17
0
 public EntityCodeHelper(EngineSharedModel engineSharedModel, IQueryCodeHelper queryHelper, IUnitOfWork unitOfWork)
 {
     this.EngineSharedModel = engineSharedModel;
     this.UnitOfWork        = unitOfWork;
     this.QueryHelper       = queryHelper;
 }
Пример #18
0
 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)
 {
 }
Пример #21
0
        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
            }
        }
Пример #22
0
 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)));
            }
        }
Пример #24
0
 public VariableEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork)
 {
 }
Пример #25
0
 public DynamicCodeEngine(EngineSharedModel engineSharedModel, IUnitOfWork unitOfWork = null) : base(engineSharedModel, unitOfWork)
 {
 }
Пример #26
0
        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
            }
        }
Пример #27
0
 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);
        }
Пример #29
0
        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
            }
        }
Пример #30
0
        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
                });
            }
        }