Esempio n. 1
0
        protected override string?PropertyValidation(PropertyInfo pi)
        {
            if (pi.Name == nameof(ViewNameProps))
            {
                if (ViewNameProps.Count > 0 && !ViewName.HasText())
                {
                    return(ValidationMessage._0ShouldBeNull.NiceToString(pi.NiceName()));
                }

                if (ViewName.HasText() && Workflow != null)
                {
                    var dv = DynamicViewEntity.TryGetDynamicView(Workflow.MainEntityType.ToType(), ViewName);
                    if (dv != null)
                    {
                        return(ViewNamePropEmbedded.ValidateViewNameProps(dv, ViewNameProps));
                    }
                }
            }

            if (pi.Name == nameof(DecisionOptions))
            {
                return((pi, DecisionOptions).IsSetOnlyWhen(Type == WorkflowActivityType.Decision));
            }

            if (pi.Name == nameof(CustomNextButton) && CustomNextButton != null && Type != WorkflowActivityType.Task)
            {
                return(ValidationMessage._0IsSet.NiceToString(pi.NiceName()));
            }

            return(base.PropertyValidation(pi));
        }
Esempio n. 2
0
        protected override string?PropertyValidation(PropertyInfo pi)
        {
            if (pi.Name == nameof(SubWorkflow))
            {
                var requiresSubWorkflow = this.Type == WorkflowActivityType.CallWorkflow || this.Type == WorkflowActivityType.DecompositionWorkflow;
                if (SubWorkflow != null && !requiresSubWorkflow)
                {
                    return(ValidationMessage._0ShouldBeNull.NiceToString(pi.NiceName()));
                }

                if (SubWorkflow == null && requiresSubWorkflow)
                {
                    return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
                }
            }

            if (pi.Name == nameof(Script))
            {
                var requiresScript = this.Type == WorkflowActivityType.Script;
                if (Script != null && !requiresScript)
                {
                    return(ValidationMessage._0ShouldBeNull.NiceToString(pi.NiceName()));
                }

                if (Script == null && requiresScript)
                {
                    return(ValidationMessage._0IsNotSet.NiceToString(pi.NiceName()));
                }
            }

            if (pi.Name == nameof(ViewNameProps))
            {
                if (ViewNameProps.Count > 0 && !ViewName.HasText())
                {
                    return(ValidationMessage._0ShouldBeNull.NiceToString(pi.NiceName()));
                }

                if (ViewName.HasText())
                {
                    var dv = DynamicViewEntity.TryGetDynamicView(Lane.Pool.Workflow.MainEntityType.ToType(), ViewName);
                    if (dv != null)
                    {
                        return(ViewNamePropEmbedded.ValidateViewNameProps(dv, ViewNameProps));
                    }
                }
            }

            if (pi.Name == nameof(DecisionOptions))
            {
                return((pi, DecisionOptions).IsSetOnlyWhen(Type == WorkflowActivityType.Decision));
            }

            if (pi.Name == nameof(CustomNextButton) && CustomNextButton != null && Type != WorkflowActivityType.Task)
            {
                return(ValidationMessage._0IsSet.NiceToString(pi.NiceName()));
            }

            return(base.PropertyValidation(pi));
        }
Esempio n. 3
0
        internal static string?ValidateViewNameProps(DynamicViewEntity dv, MList <ViewNamePropEmbedded> viewNameProps)
        {
            var extra   = viewNameProps.Where(a => !dv.Props.Any(p => p.Name == a.Name)).CommaAnd(a => a.Name);
            var missing = dv.Props.Where(p => !p.Type.EndsWith("?") && !viewNameProps.Any(a => a.Expression.HasText() && p.Name == a.Name)).CommaAnd(a => a.Name);

            return(" and ".Combine(
                       extra.HasText() ? "The ViewProps " + extra + " are not declared in " + dv.ViewName : null,
                       missing.HasText() ? "The ViewProps " + missing + " are mandatory in " + dv.ViewName : null
                       ).DefaultToNull());
        }
Esempio n. 4
0
        protected override string?PropertyValidation(PropertyInfo pi)
        {
            if (pi.Name == nameof(ViewNameProps))
            {
                if (ViewNameProps.Count > 0 && !ViewName.HasText())
                {
                    return(ValidationMessage._0ShouldBeNull.NiceToString(pi.NiceName()));
                }

                if (ViewName.HasText() && Workflow != null)
                {
                    var dv = DynamicViewEntity.TryGetDynamicView(Workflow.MainEntityType.ToType(), ViewName);
                    if (dv != null)
                    {
                        return(ViewNamePropEmbedded.ValidateViewNameProps(dv, ViewNameProps));
                    }
                }
            }

            return(base.PropertyValidation(pi));
        }