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));
            }
        }
Example #2
0
        public object PostEditApplicationPage(PostEditApplicationPageDTO model)
        {
            using (DynamicFormService dynamicFormService = new DynamicFormService())
            {
                sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(model.DynamicFormDTO.ID);
                dynamicForm.Update(null, model.DynamicFormDTO.ApplicationPageID, model.DynamicFormDTO.Name, model.DynamicFormDTO.Version, model.DynamicFormDTO.ShowInOverview);

                DynamicFormConfigXmlModel configXmlModel = dynamicForm.ConfigXmlModel;
                configXmlModel.IsEncrypted = model.DynamicFormDTO.IsEncrypted;
                dynamicForm.Update(configXmlModel);

                dynamicFormService.Update(dynamicForm, base.userName);

                using (ApplicationPageService applicationPageService = new ApplicationPageService())
                {
                    sysBpmsApplicationPage applicationPage = applicationPageService.GetInfo(model.DynamicFormDTO.ApplicationPageID.Value);
                    applicationPage.Update(model.DynamicFormDTO.ApplicationPageDTO.GroupLU, model.DynamicFormDTO.ApplicationPageDTO.Description, model.DynamicFormDTO.ApplicationPageDTO.ShowInMenu);
                    applicationPageService.Update(applicationPage);

                    using (ApplicationPageAccessService applicationPageAccessService = new ApplicationPageAccessService())
                    {
                        List <sysBpmsApplicationPageAccess> newApplicationPageAccess =
                            (model.listRole ?? new List <ApplicationPageAccessDTO>()).Select(c => new sysBpmsApplicationPageAccess().Update(c.ID, model.DynamicFormDTO.ApplicationPageID.Value, c.DepartmentID, c.RoleLU, c.UserID, c.AllowAdd, c.AllowEdit, c.AllowDelete, c.AllowView)).ToList()
                            .Union((model.listUser ?? new List <ApplicationPageAccessDTO>()).Select(c => new sysBpmsApplicationPageAccess().Update(c.ID, model.DynamicFormDTO.ApplicationPageID.Value, c.DepartmentID, c.RoleLU, c.UserID, c.AllowAdd, c.AllowEdit, c.AllowDelete, c.AllowView))).ToList();
                        applicationPageAccessService.AddEdit(applicationPage.ID, newApplicationPageAccess);
                    }
                }
            }
            return(new PostMethodMessage(SharedLang.Get("Success.Text"), DisplayMessageType.success));
        }
        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
                    })
                });
            }
        }
Example #4
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,
                    });
                }
            }
        }
Example #5
0
 public object PostAddEditFormDesign(PostAddEditFormDesignDTO model)
 {
     using (DynamicFormService dynamicFormService = new DynamicFormService())
     {
         sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(model.DynamicFormId);
         if (dynamicForm != null)
         {
             ResultOperation resultOperation = dynamicForm.Update(model.DesignJson);
             if (!resultOperation.IsSuccess)
             {
                 return(new PostMethodMessage(resultOperation.GetErrors(), DisplayMessageType.error));
             }
             resultOperation = dynamicFormService.GetSourceCode(dynamicForm);
             if (!resultOperation.IsSuccess)
             {
                 return(new PostMethodMessage(resultOperation.GetErrors(), DisplayMessageType.error));
             }
             resultOperation = dynamicFormService.Update(dynamicForm, base.userName);
             if (resultOperation.IsSuccess)
             {
                 return(new PostMethodMessage(SharedLang.Get("Success.Text"), DisplayMessageType.success));
             }
             else
             {
                 return(new PostMethodMessage(resultOperation.GetErrors(), DisplayMessageType.error));
             }
         }
         else
         {
             return(new PostMethodMessage(SharedLang.Get("NotFound.Text"), DisplayMessageType.error));
         }
     }
 }
Example #6
0
        public void Delete(Guid dynamicFormId)
        {
            sysBpmsDynamicForm dynamicForm = this.Context.sysBpmsDynamicForms.FirstOrDefault(d => d.ID == dynamicFormId);

            if (dynamicForm != null)
            {
                this.Context.sysBpmsDynamicForms.Remove(dynamicForm);
            }
        }
Example #7
0
        public ResultOperation Delete(Guid dynamicFormId)
        {
            ResultOperation resultOperation = null;

            try
            {
                resultOperation = new ResultOperation();
                if (resultOperation.IsSuccess)
                {
                    base.BeginTransaction();

                    List <sysBpmsStep> list = new StepService(this.UnitOfWork).GetList(null, dynamicFormId);
                    foreach (var item in list)
                    {
                        resultOperation = new StepService(this.UnitOfWork).Delete(item.ID);
                        if (!resultOperation.IsSuccess)
                        {
                            break;
                        }
                    }
                    if (resultOperation.IsSuccess)
                    {
                        sysBpmsDynamicForm dynamicForm = this.GetInfo(dynamicFormId);
                        this.UnitOfWork.Repository <IDynamicFormRepository>().Delete(dynamicFormId);

                        if (resultOperation.IsSuccess && dynamicForm.ApplicationPageID.HasValue)
                        {
                            //delete page variables
                            List <sysBpmsVariable> listVariable = new VariableService(this.UnitOfWork).GetList(null, dynamicForm.ApplicationPageID.Value, null, "", null, null);
                            foreach (var item in listVariable)
                            {
                                resultOperation = new VariableService(this.UnitOfWork).Delete(item.ID);
                                if (!resultOperation.IsSuccess)
                                {
                                    break;
                                }
                            }
                            //delete application page
                            if (resultOperation.IsSuccess)
                            {
                                resultOperation = new ApplicationPageService(base.UnitOfWork).Delete(dynamicForm.ApplicationPageID.Value);
                            }
                        }
                    }
                    this.UnitOfWork.Save();
                }
            }
            catch (Exception ex)
            {
                return(base.ExceptionHandler(ex));
            }
            base.FinalizeService(resultOperation);

            return(resultOperation);
        }
Example #8
0
 public object GetAddEditStyleSheet(Guid DynamicFormId)
 {
     using (DynamicFormService dynamicFormService = new DynamicFormService())
     {
         sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(DynamicFormId);
         return(Json(new
         {
             StyleCode = dynamicForm.ConfigXmlModel.StyleSheetCode.ToStringObj(),
             DynamicFormId
         }));
     }
 }
 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);
     }
 }
Example #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));
 }
Example #11
0
        public ResultOperation Update(sysBpmsDynamicForm dynamicForm, string userName)
        {
            ResultOperation resultOperation = new ResultOperation();

            if (dynamicForm.ProcessId.HasValue && !new ProcessService(base.UnitOfWork).GetInfo(dynamicForm.ProcessId.Value).AllowEdit())
            {
                resultOperation.AddError(LangUtility.Get("NotAllowEdit.Text", nameof(sysBpmsProcess)));
            }

            if (resultOperation.IsSuccess)
            {
                dynamicForm.UpdatedBy   = userName;
                dynamicForm.UpdatedDate = DateTime.Now;
                this.UnitOfWork.Repository <IDynamicFormRepository>().Update(dynamicForm);
                this.UnitOfWork.Save();
            }
            return(resultOperation);
        }
Example #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());
     }
 }
Example #13
0
        public object PostAddEditStyleSheet(PostAddEditStyleSheetDTO model)
        {
            using (DynamicFormService dynamicFormService = new DynamicFormService())
            {
                sysBpmsDynamicForm dynamicForm = dynamicFormService.GetInfo(model.DynamicFormId);

                DynamicFormConfigXmlModel configXmlModel = dynamicForm.ConfigXmlModel;
                configXmlModel.StyleSheetCode = model.StyleCode;
                dynamicForm.Update(configXmlModel);
                ResultOperation resultOperation = dynamicFormService.Update(dynamicForm, base.userName);

                if (!resultOperation.IsSuccess)
                {
                    return(new PostMethodMessage(resultOperation.GetErrors(), DisplayMessageType.error));
                }

                return(new PostMethodMessage(SharedLang.Get("Success.Text"), DisplayMessageType.success));
            }
        }
Example #14
0
        public object PostAddEdit(DynamicFormDTO dynamicFormDTO)
        {
            sysBpmsDynamicForm dynamicForm;
            ResultOperation    resultOperation = new ResultOperation();

            using (DynamicFormService dynamicFormService = new DynamicFormService())
            {
                if (dynamicFormDTO.ID != Guid.Empty)
                {
                    dynamicForm = dynamicFormService.GetInfo(dynamicFormDTO.ID);
                    dynamicForm.Update(dynamicFormDTO.ProcessId, dynamicFormDTO.ApplicationPageID, dynamicFormDTO.Name, dynamicFormDTO.Version, dynamicFormDTO.ShowInOverview);

                    DynamicFormConfigXmlModel configXmlModel = dynamicForm.ConfigXmlModel;
                    configXmlModel.IsEncrypted = dynamicFormDTO.IsEncrypted;
                    dynamicForm.Update(configXmlModel);

                    resultOperation = dynamicFormService.Update(dynamicForm, base.userName);
                }
                else
                {
                    dynamicForm = new sysBpmsDynamicForm().Update(dynamicFormDTO.ProcessId, dynamicFormDTO.ApplicationPageID, dynamicFormDTO.Name, dynamicFormDTO.Version, dynamicFormDTO.ShowInOverview);

                    DynamicFormConfigXmlModel configXmlModel = dynamicForm.ConfigXmlModel;
                    configXmlModel.IsEncrypted = dynamicFormDTO.IsEncrypted;
                    dynamicForm.Update(configXmlModel);
                    //make applicationPage if processId is null.
                    sysBpmsApplicationPage sysAppPage = !dynamicForm.ProcessId.HasValue ?
                                                        new sysBpmsApplicationPage().Update(dynamicFormDTO.ApplicationPageDTO.GroupLU, string.Empty, dynamicFormDTO.ApplicationPageDTO.ShowInMenu) : null;

                    resultOperation        = dynamicFormService.Add(dynamicForm, sysAppPage, base.userName);
                    base.ApplicationPageId = dynamicForm.ApplicationPageID;
                }
            }
            if (resultOperation.IsSuccess)
            {
                return(new PostMethodMessage(SharedLang.Get("Success.Text"), DisplayMessageType.success, new DynamicFormDTO(dynamicForm)));
            }
            else
            {
                return(new PostMethodMessage(resultOperation.GetErrors(), DisplayMessageType.error));
            }
        }
Example #15
0
        //Get list controls as Dictionary<string, string> Key=Id Value=label
        public Dictionary <string, string> GetControls(sysBpmsDynamicForm dynamicForm)
        {
            if (string.IsNullOrWhiteSpace(dynamicForm.DesignJson))
            {
                return(new Dictionary <string, string>());
            }

            JObject obj = JObject.Parse(dynamicForm.DesignJson);

            if (obj != null && obj["type"].ToString() == "CONTENT")
            {
                return(dynamicForm.GetControls().ToDictionary(
                           f => f["id"].ToStringObj(),
                           g => (g["type"].ToStringObj() == "HTMLCODE" || string.IsNullOrWhiteSpace(g["label"].ToStringObj())) ? g["id"].ToStringObj() : g["label"].ToStringObj()));
            }
            else
            {
                return(new Dictionary <string, string>());
            }
        }
Example #16
0
        public ResultOperation Add(sysBpmsDynamicForm dynamicForm, sysBpmsApplicationPage appPage, string userName)
        {
            ResultOperation resultOperation = new ResultOperation();

            try
            {
                if (dynamicForm.ProcessId.HasValue && !new ProcessService(base.UnitOfWork).GetInfo(dynamicForm.ProcessId.Value).AllowEdit())
                {
                    resultOperation.AddError(LangUtility.Get("NotAllowEdit.Text", nameof(sysBpmsProcess)));
                }

                if (resultOperation.IsSuccess)
                {
                    base.BeginTransaction();
                    if (!dynamicForm.ProcessId.HasValue && !dynamicForm.ApplicationPageID.HasValue)
                    {
                        appPage         = appPage ?? new sysBpmsApplicationPage().Update(0, String.Empty, false);
                        appPage.ID      = Guid.Empty;
                        resultOperation = new ApplicationPageService(base.UnitOfWork).Add(appPage);
                        dynamicForm.ApplicationPageID = appPage.ID;
                    }
                    if (resultOperation.IsSuccess)
                    {
                        dynamicForm.CreatedBy   = userName.ToStringObj();
                        dynamicForm.CreatedDate = DateTime.Now;
                        dynamicForm.UpdatedBy   = userName.ToStringObj();
                        dynamicForm.UpdatedDate = DateTime.Now;

                        this.UnitOfWork.Repository <IDynamicFormRepository>().Add(dynamicForm);
                        this.UnitOfWork.Save();
                    }
                }
            }
            catch (Exception ex)
            {
                return(base.ExceptionHandler(ex));
            }
            base.FinalizeService(resultOperation);

            return(resultOperation);
        }
Example #17
0
 public DynamicFormDTO(sysBpmsDynamicForm dynamicForm)
 {
     if (dynamicForm != null)
     {
         this.ID                 = dynamicForm.ID;
         this.Name               = dynamicForm.Name;
         this.ProcessId          = dynamicForm.ProcessId;
         this.ApplicationPageID  = dynamicForm.ApplicationPageID;
         this.Version            = dynamicForm.Version ?? 1;
         this.DesignJson         = dynamicForm.DesignJson;
         this.ConfigXML          = dynamicForm.ConfigXML;
         this.OnExitFormCode     = dynamicForm.OnExitFormCode;
         this.OnEntryFormCode    = dynamicForm.OnEntryFormCode;
         this.ShowInOverview     = dynamicForm.ShowInOverview;
         this.CreatedBy          = dynamicForm.CreatedBy;
         this.CreatedDate        = dynamicForm.CreatedDate;
         this.UpdatedBy          = dynamicForm.UpdatedBy;
         this.UpdatedDate        = dynamicForm.UpdatedDate;
         this.ApplicationPageDTO = dynamicForm.ApplicationPageID.HasValue ? new ApplicationPageDTO(dynamicForm.ApplicationPage) : null;
         this.IsEncrypted        = this.ConfigXML.ToStringObj().ParseXML <DynamicFormConfigXmlModel>()?.IsEncrypted ?? false;
     }
 }
Example #18
0
        public ResultOperation Copy(Guid dynamicFormId, string userName)
        {
            sysBpmsDynamicForm dynamicForm = this.GetInfo(dynamicFormId);

            dynamicForm.ID    = Guid.Empty;
            dynamicForm.Name += " - Copy";

            this.UpdateBackendCodeID(dynamicForm);
            this.GetSourceCode(dynamicForm);
            if (dynamicForm.ApplicationPageID.HasValue)
            {
                ApplicationPageService       applicationPageService       = new ApplicationPageService(base.UnitOfWork);
                ApplicationPageAccessService applicationPageAccessService = new ApplicationPageAccessService(base.UnitOfWork);

                sysBpmsApplicationPage sysBpmsApplicationPage = applicationPageService.GetInfo(dynamicForm.ApplicationPageID.Value);
                List <sysBpmsApplicationPageAccess> sysBpmsApplicationPageAccessList = applicationPageAccessService.GetList(dynamicForm.ApplicationPageID.Value, null);

                //Adding sysBpmsApplicationPage
                sysBpmsApplicationPage.ID = Guid.NewGuid();
                applicationPageService.Add(sysBpmsApplicationPage);

                foreach (var item in sysBpmsApplicationPageAccessList)
                {
                    item.ID = Guid.NewGuid();
                    item.ApplicationPageID = sysBpmsApplicationPage.ID;
                    applicationPageAccessService.Add(item);
                }
                dynamicForm.ApplicationPageID = sysBpmsApplicationPage.ID;
            }
            dynamicForm.CreatedBy   = userName;
            dynamicForm.CreatedDate = DateTime.Now;
            dynamicForm.UpdatedBy   = userName;
            dynamicForm.UpdatedDate = DateTime.Now;
            this.UnitOfWork.Repository <IDynamicFormRepository>().Add(dynamicForm);
            this.UnitOfWork.Save();


            return(new ResultOperation());
        }
Example #19
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);
        }
Example #20
0
 public void Update(sysBpmsDynamicForm dynamicForm)
 {
     this.Context.Entry(dynamicForm.Clone()).State = EntityState.Modified;
 }
Example #21
0
 public static void GenerateAppPageAssembly(sysBpmsDynamicForm dynamicForm)
 {
     CompileAssemblies(dynamicForm.SourceCode, dynamicForm.ApplicationPageID.ToString());
 }
Example #22
0
        public ResultOperation GetSourceCode(sysBpmsDynamicForm dynamicForm)
        {
            ResultOperation resultOperation = new ResultOperation();

            try
            {
                FormModel formModel    = new FormModel(JObject.Parse(dynamicForm.DesignJson), HtmlElementHelper.MakeModel(null, null, HtmlElementHelperModel.e_FormAction.FillMode, dynamicForm), null, null, dynamicForm, false);
                string    renderedCode = string.Empty;
                formModel.ContentHtml.Rows.ForEach((row) =>
                {
                    renderedCode += renderCode(row);
                    if (row is RowHtml)
                    {
                        readRow(row);
                    }
                    else
                    {
                        ((AccordionHtml)row).Cards.ForEach((car) =>
                        {
                            renderedCode += renderCode(car);
                            ((CardHtml)car).Rows.ForEach((item) =>
                            {
                                readRow(item);
                            });
                        });
                    }
                });

                void readRow(object row)
                {
                    ((RowHtml)row).Columns.ForEach((column) =>
                    {
                        renderedCode += renderCode(column);
                        column.children.ForEach((item) =>
                        {
                            renderedCode += renderCode(item);
                        });
                    });
                }

                string renderCode(object item)
                {
                    DesignCodeModel designCode = null;
                    string          code       = string.Empty;

                    //VisibilityDesignCodeModel
                    code += makeClass(((ElementBase)item).VisibilityDesignCodeModel);
                    //if is button
                    if (item is ButtonHtml)
                    {
                        code += makeClass(((ButtonHtml)item).ConfirmDesignCodeModel);
                        code += makeClass(DesignCodeUtility.GetDesignCodeFromXml(((ButtonHtml)item).BackendCoding));
                    }
                    if (item is DataGridHtml)
                    {
                        DataGridHtml dataGridHtml = (DataGridHtml)item;
                        dataGridHtml.DataGridColumns.ForEach((column) =>
                        {
                            column.ItemList.ForEach((cItem) =>
                            {
                                designCode = DesignCodeUtility.GetDesignCodeFromXml(cItem.ExpressionConfirmCode.FromBase64());
                                if (designCode != null && !string.IsNullOrWhiteSpace(designCode.Code))
                                {
                                    code += makeClass(designCode);
                                }
                                designCode = DesignCodeUtility.GetDesignCodeFromXml(cItem.RunCodeData.FromBase64());
                                if (designCode != null && !string.IsNullOrWhiteSpace(designCode.Code))
                                {
                                    code += makeClass(designCode);
                                }
                            });
                        });
                    }
                    return(code);
                }

                string makeClass(DesignCodeModel designCode)
                {
                    string code = string.Empty;

                    if (designCode != null && !string.IsNullOrWhiteSpace(designCode.Code))
                    {
                        code = DynamicCodeEngine.MakeClass(designCode.Code, designCode.ID);
                    }
                    return(code);
                }
                renderedCode += makeClass(DesignCodeUtility.GetDesignCodeFromXml(dynamicForm.OnEntryFormCode));
                renderedCode += makeClass(DesignCodeUtility.GetDesignCodeFromXml(dynamicForm.OnExitFormCode));

                dynamicForm.SourceCode = renderedCode;
                if (dynamicForm.ApplicationPageID.HasValue)
                {
                    DynamicCodeEngine.GenerateAppPageAssembly(dynamicForm);
                }
            }
            catch (Exception ex)
            {
                resultOperation.AddError(ex.ToString());
                resultOperation.AddError("Error while creating code");
            }
            return(resultOperation);
        }
Example #23
0
        /// <summary>
        /// this will change all back end code id because of compiled dll duplicated.
        /// </summary>
        /// <param name="dynamicForm"></param>
        public void UpdateBackendCodeID(sysBpmsDynamicForm dynamicForm)
        {
            if (!string.IsNullOrWhiteSpace(dynamicForm.DesignJson))
            {
                FormModel formModel = new FormModel(JObject.Parse(dynamicForm.DesignJson), HtmlElementHelper.MakeModel(null, null, HtmlElementHelperModel.e_FormAction.FillMode, dynamicForm), null, null, dynamicForm, false);
                formModel.ContentHtml.Rows.ForEach((row) =>
                {
                    generateCodeID(row);
                    if (row is RowHtml)
                    {
                        readRow(row);
                    }
                    else
                    {
                        ((AccordionHtml)row).Cards.ForEach((car) =>
                        {
                            generateCodeID(car);
                            ((CardHtml)car).Rows.ForEach((item) =>
                            {
                                readRow(item);
                            });
                        });
                    }
                });

                void readRow(object row)
                {
                    ((RowHtml)row).Columns.ForEach((column) =>
                    {
                        generateCodeID(column);
                        column.children.ForEach((item) =>
                        {
                            generateCodeID(item);
                        });
                    });
                }

                void generateCodeID(object item)
                {
                    replaceID(((ElementBase)item).ExpressionVisibilityCode);
                    if (item is ButtonHtml)
                    {
                        replaceID(((ButtonHtml)item).ExpressionConfirmCode);
                        replaceID(((ButtonHtml)item).BackendCoding);
                    }
                    else
                    if (item is DataGridHtml)
                    {
                        DataGridHtml dataGridHtml = (DataGridHtml)item;
                        dataGridHtml.DataGridColumns.ForEach((column) =>
                        {
                            column.ItemList.ForEach((cItem) =>
                            {
                                if (!string.IsNullOrWhiteSpace(cItem.ExpressionConfirmCode))
                                {
                                    replaceID(cItem.ExpressionConfirmCode.FromBase64());
                                }
                                if (!string.IsNullOrWhiteSpace(cItem.RunCodeData))
                                {
                                    replaceID(cItem.RunCodeData.FromBase64());
                                }
                            });
                        });
                    }
                }

                void replaceID(string decodedCode)
                {
                    if (!string.IsNullOrWhiteSpace(decodedCode))
                    {
                        DesignCodeModel designCode = DesignCodeUtility.GetDesignCodeFromXml(decodedCode);
                        if (designCode != null && !string.IsNullOrWhiteSpace(designCode.ID))
                        {
                            dynamicForm.DesignJson = dynamicForm.DesignJson.Replace(decodedCode.ToBase64(), decodedCode.Replace(designCode.ID, Guid.NewGuid().ToStringObj()).ToBase64());
                        }
                    }
                }

                DesignCodeModel codeModel = DesignCodeUtility.GetDesignCodeFromXml(dynamicForm.OnEntryFormCode);
                if (codeModel != null && !string.IsNullOrWhiteSpace(codeModel.ID))
                {
                    dynamicForm.OnEntryFormCode = dynamicForm.OnEntryFormCode.Replace(codeModel.ID, Guid.NewGuid().ToString());
                }
                codeModel = DesignCodeUtility.GetDesignCodeFromXml(dynamicForm.OnExitFormCode);
                if (codeModel != null && !string.IsNullOrWhiteSpace(codeModel.ID))
                {
                    dynamicForm.OnExitFormCode = dynamicForm.OnExitFormCode.Replace(codeModel.ID, Guid.NewGuid().ToString());
                }
            }
        }
Example #24
0
 public void Add(sysBpmsDynamicForm dynamicForm)
 {
     dynamicForm.ID = Guid.NewGuid();
     this.Context.sysBpmsDynamicForms.Add(dynamicForm);
 }