Example #1
0
        private void LogicRuleExecutorOnLogicRuleExecuted(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo  = logicRuleExecuteEventArgs.LogicRuleInfo;
            var auditTrailRule = logicRuleInfo.Rule as IAuditTrailRule;

            if (auditTrailRule?.AuditPending != null)
            {
                _auditPending = auditTrailRule.AuditPending.Value;
            }
        }
Example #2
0
        void LogicRuleViewControllerOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs e)
        {
            LogicRuleInfo info = e.LogicRuleInfo;

            if (info.InvertCustomization)
            {
                return;
            }
            var objectViewRule = info.Rule as IObjectViewRule;

            if (objectViewRule != null)
            {
                ExecutionContext executionContext = e.ExecutionContext;
                switch (executionContext)
                {
                case ExecutionContext.None:
                    if (info.Active)
                    {
                        ProcessActions(info, objectViewRule);
                    }
                    break;

                case ExecutionContext.CustomProcessSelectedItem:
                    if (info.Active && objectViewRule.ObjectView is IModelListView)
                    {
                        CustomProcessSelectedItem(info, objectViewRule);
                    }
                    break;

                case ExecutionContext.CustomizeShowViewParameters:
                    if (info.Active && objectViewRule.ObjectView is IModelDetailView)
                    {
                        CustomizeShowViewParameters(info, objectViewRule);
                    }
                    break;

                case ExecutionContext.CurrentObjectChanged:
                    if (View.Model.AsObjectView is IModelDetailView && objectViewRule.ObjectView is IModelDetailView && View.ObjectTypeInfo != null)
                    {
                        var modelView = info.Active ? objectViewRule.ObjectView : GetDefaultObjectView();
                        if (modelView != null)
                        {
                            Frame.GetController <ModelController>().SetView();
                        }
                    }
                    break;
                }
            }
        }
Example #3
0
        private void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs e)
        {
            var info = e.LogicRuleInfo;
            var controllerStateRule = info.Rule as IControllerStateRule;

            if (controllerStateRule != null)
            {
                if (!string.IsNullOrEmpty(controllerStateRule.Module))
                {
                    ChangeStateOnModules(info);
                }
                else
                {
                    ChangeState(controllerStateRule);
                }
            }
        }
        void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo  = logicRuleExecuteEventArgs.LogicRuleInfo;
            var auditTrailRule = logicRuleInfo.Rule as IAuditTrailRule;

            if (auditTrailRule != null)
            {
                if (!logicRuleInfo.InvertCustomization)
                {
                    ApplyCustomization(auditTrailRule);
                }
                else
                {
                    InvertCustomization(auditTrailRule);
                }
            }
        }
Example #5
0
        void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo = logicRuleExecuteEventArgs.LogicRuleInfo;
            var emailRule     = logicRuleInfo.Rule as EmailRule;

            if (emailRule != null && !logicRuleInfo.InvertCustomization && logicRuleInfo.Active)
            {
                var modelApplicationEmail  = (IModelApplicationEmail)Application.Model;
                var emailTemplateObject    = EmailTemplateObject(modelApplicationEmail, emailRule, ObjectSpace);
                var modelSmtpClientContext = modelApplicationEmail.Email.SmtpClientContexts.First(emailTemplate => emailTemplate.GetValue <string>("Id") == emailRule.SmtpClientContext);
                var email = CreateEmail(logicRuleInfo, emailRule, modelSmtpClientContext, emailTemplateObject, modelApplicationEmail);
                if (email != null)
                {
                    var smtpClient = CreateSmtpClient(modelSmtpClientContext);
                    smtpClient.Send(email);
                }
            }
        }
 void OnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs e)
 {
     if (e.LogicRuleInfo.Active)
     {
         var modelAdaptorRule = e.LogicRuleInfo.Rule as IModelAdaptorRule;
         if (modelAdaptorRule != null)
         {
             if (!_ruleTypeActiveModels.ContainsKey(modelAdaptorRule.RuleType))
             {
                 _ruleTypeActiveModels.Add(modelAdaptorRule.RuleType, new List <IModelNodeEnabled>());
             }
             var modelNodeEnableds          = _ruleTypeActiveModels[modelAdaptorRule.RuleType];
             var modelAdaptorLogicInstaller = LogicInstallerManager.Instance.LogicInstallers.OfType <ModelAdaptorLogicInstaller>().Single();
             var modelLogicRules            = modelAdaptorLogicInstaller.GetModelLogic().Rules;
             var modelLogicRule             = modelLogicRules.First(rule => rule.Id == modelAdaptorRule.Id);
             modelNodeEnableds.Add((IModelNodeEnabled)modelLogicRule);
         }
     }
 }
        void LogicRuleViewControllerOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs e)
        {
            LogicRuleInfo info = e.LogicRuleInfo;

            if (info.InvertCustomization)
            {
                return;
            }
            var objectViewRule = info.Rule as IObjectViewRule;

            if (objectViewRule != null)
            {
                ExecutionContext executionContext = e.ExecutionContext;
                switch (executionContext)
                {
                case ExecutionContext.None:
                    if (info.Active)
                    {
                        ProcessActions(info, objectViewRule);
                    }
                    break;

                case ExecutionContext.CustomProcessSelectedItem:
                    if (info.Active)
                    {
                        CustomProcessSelectedItem(info, objectViewRule);
                    }
                    break;

                case ExecutionContext.CurrentObjectChanged:
                    if (View.Model.AsObjectView is IModelDetailView && objectViewRule.ObjectView is IModelDetailView && View.ObjectTypeInfo != null)
                    {
                        var modelView = info.Active ? objectViewRule.ObjectView : Application.Model.BOModel.GetClass(View.ObjectTypeInfo.Type).DefaultDetailView;
                        if (modelView != null)
                        {
                            var shortcut = new ViewShortcut(modelView.Id, View.ObjectTypeInfo.KeyMember.GetValue(View.CurrentObject).ToString());
                            Frame.SetView(Application.ProcessShortcut(shortcut), View.Tag as Frame);
                        }
                    }
                    break;
                }
            }
        }
Example #8
0
        void OnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo = logicRuleExecuteEventArgs.LogicRuleInfo;

            if (logicRuleInfo.Active)
            {
                var rule = logicRuleInfo.Rule as IActionStateRule;
                if (rule != null)
                {
                    foreach (ActionBase actionBase in GetActions(rule))
                    {
                        switch (rule.ActionState)
                        {
                        case Persistent.Base.ModelArtifact.ActionState.ForceActive: {
                            actionBase.Active.Clear();
                            break;
                        }

                        case Persistent.Base.ModelArtifact.ActionState.Hidden:
                            ActivateDeActivateAction(logicRuleInfo, actionBase);
                            break;

                        case Persistent.Base.ModelArtifact.ActionState.Disabled:
                            EnableDisableAction(logicRuleInfo, actionBase);
                            break;

                        case Persistent.Base.ModelArtifact.ActionState.Executed: {
                            if (logicRuleInfo.Active)
                            {
                                ExecuteAction(actionBase);
                            }
                        }
                        break;

                        case Persistent.Base.ModelArtifact.ActionState.ExecutedAndDisable:
                            ExecuteAndDisableAction(actionBase);
                            break;
                        }
                    }
                }
            }
        }
Example #9
0
        void LogicRuleViewControllerOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var info             = logicRuleExecuteEventArgs.LogicRuleInfo;
            var masterDetailRule = info.Rule as IMasterDetailRule;

            if (masterDetailRule != null)
            {
                if (info.Active)
                {
                    if (!(_masterDetailRules.Contains(masterDetailRule)))
                    {
                        _masterDetailRules.Add(masterDetailRule);
                    }
                }
                else
                {
                    _masterDetailRules.Remove(masterDetailRule);
                }
            }
        }
        void OnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var info = logicRuleExecuteEventArgs.LogicRuleInfo;
            var additionalViewControlsRule = info.Rule as IAdditionalViewControlsRule;

            if (Frame != null && additionalViewControlsRule != null)
            {
                var viewSiteTemplate = Frame.Template as IViewSiteTemplate;
                if (viewSiteTemplate == null)
                {
                    return;
                }

                object viewSiteControl = GetContainerControl(viewSiteTemplate, additionalViewControlsRule);
                if (viewSiteControl != null)
                {
                    var                    calculator            = new AdditionalViewControlsProviderCalculator(additionalViewControlsRule, info.View.ObjectTypeInfo.Type);
                    Type                   controlType           = calculator.ControlsRule.ControlType;
                    ICollection            controls              = GetControls(viewSiteControl);
                    IAdditionalViewControl additionalViewControl = FindControl(additionalViewControlsRule, controls);
                    if (info.Active && ViewContextIsCorrect(additionalViewControlsRule))
                    {
                        var control = GetControl(controlType, additionalViewControl, additionalViewControlsRule);
                        if (control != null)
                        {
                            control.Rule = additionalViewControlsRule;
                            calculator.ControlsRule.DecoratorType.CreateInstance(info.View, (object)control, additionalViewControlsRule);
                            if (additionalViewControl == null)
                            {
                                InitializeControl(control, additionalViewControlsRule, calculator, logicRuleExecuteEventArgs.ExecutionContext);
                                AddControl(control, controls, info);
                            }
                        }
                    }
                    else if (additionalViewControl != null)
                    {
                        controls.CallMethod("Remove", new[] { GetControlType() }, additionalViewControl);
                    }
                }
            }
        }
Example #11
0
        void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs e)
        {
            var logicRuleInfo = e.LogicRuleInfo;

            if (logicRuleInfo.Rule is IAuditTrailRule auditTrailRule && logicRuleInfo.Active)
            {
                ApplyCustomization(auditTrailRule);
                if (logicRuleInfo.EventArgs is CustomizeSessionAuditingOptionsEventArgs auditingOptionsEventArgs)
                {
                    if (auditTrailRule.AuditingMode.HasValue)
                    {
                        auditingOptionsEventArgs.ObjectAuditingMode = (DevExpress.Persistent.AuditTrail.ObjectAuditingMode)auditTrailRule.AuditingMode.Value;
                    }
                    auditingOptionsEventArgs.AuditTrailStrategy = auditTrailRule.AuditTrailStrategy;
                }

                if (logicRuleInfo.EventArgs is HandledEventArgs args)
                {
                    args.Handled = true;
                }
            }
        }
Example #12
0
        void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo = logicRuleExecuteEventArgs.LogicRuleInfo;
            var emailRule     = logicRuleInfo.Rule as EmailRule;

            if (emailRule != null && !logicRuleInfo.InvertCustomization)
            {
                var modelApplicationEmail = (IModelApplicationEmail)Application.Model;
                var emailTemplateObject   = EmailTemplateObject(modelApplicationEmail, emailRule, ObjectSpace);
                var templateEngine        = new EmailTemplateEngine.EmailTemplateEngine(
                    new StreamEmailTemplateContentReader(emailTemplateObject.Body));
                var modelSmtpClientContext = modelApplicationEmail.Email.SmtpClientContexts.First(emailTemplate => emailTemplate.GetValue <string>("Id") == emailRule.SmtpClientContext);
                var email = CreateEmail(templateEngine, logicRuleInfo, emailRule, modelSmtpClientContext, emailTemplateObject, modelApplicationEmail);
                if (email != null)
                {
                    var emailSender = new EmailSender {
                        CreateClientFactory =
                            () => new SmtpClientWrapper(CreateSmtpClient(modelSmtpClientContext))
                    };
                    emailSender.Send(email);
                }
            }
        }
        void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo  = logicRuleExecuteEventArgs.LogicRuleInfo;
            var auditTrailRule = logicRuleInfo.Rule as IAuditTrailRule;

            if (auditTrailRule != null)
            {
                ApplyCustomization(auditTrailRule);
                var auditingOptionsEventArgs = logicRuleInfo.EventArgs as CustomizeSessionAuditingOptionsEventArgs;
                if (auditingOptionsEventArgs != null)
                {
                    if (auditTrailRule.AuditingMode.HasValue)
                    {
                        auditingOptionsEventArgs.ObjectAuditingMode = (DevExpress.Persistent.AuditTrail.ObjectAuditingMode)auditTrailRule.AuditingMode.Value;
                    }
                    auditingOptionsEventArgs.AuditTrailStrategy = auditTrailRule.AuditTrailStrategy;
                }
                var handledEventArgs = logicRuleInfo.EventArgs as HandledEventArgs;
                if (handledEventArgs != null)
                {
                    handledEventArgs.Handled = true;
                }
            }
        }