BudgetAnalyser.Engine.Widgets.Widget.ValidateUpdateInput C# (CSharp) Метод

ValidateUpdateInput() защищенный Метод

Validates the updated input to ensure it is compliant with this widget dependency requirements. Called from Update
protected ValidateUpdateInput ( object input ) : bool
input object
Результат bool
        protected bool ValidateUpdateInput(object[] input)
        {
            if (input == null)
            {
                return false;
            }

            List<Type> dependencies = Dependencies.ToList();
            if (dependencies.Count() > input.Length)
            {
                return false;
            }

            int index = 0, nullCount = 0;
            foreach (var dependencyType in Dependencies)
            {
                var dependencyInstance = input[index++];
                if (dependencyInstance == null)
                {
                    // Allow this to continue, because nulls are valid when the dependency isnt available yet.
                    nullCount++;
                    continue;
                }

                if (!dependencyType.IsInstanceOfType(dependencyInstance))
                {
                    return false;
                }
            }

            if (nullCount == Dependencies.Count())
            {
                return false;
            }

            return true;
        }
    }