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;
}
}