/// <summary> /// Checks the signiture of a migration method. /// </summary> /// <param name="method"></param> /// <param name="jsonArgumentType">Can be null if you don't want to check the type. Otherwise it should be one of JObject or JArray</param> public VerificationResultEnum VerifyMigrationMethodSignature(MigrationMethod method, SimpleType jsonArgumentType) { if (method == null) { throw new ArgumentNullException(nameof(method)); } if (!_CanAssign(method.Parameters[0].Type, JTokenType)) { return(VerificationResultEnum.FirstArgumentMustBeAssignableToJToken); } if (method.Parameters.Count != 2) { return(VerificationResultEnum.ParameterCountDoesntMatch); } if (jsonArgumentType != null && !_CanAssign(jsonArgumentType, method.Parameters[0].Type)) { return(VerificationResultEnum.FirstArgumentMustBeAssignableToReturnTypeOfPreviousMigrationMethod); } if (!_CanAssign(method.Parameters[1].Type, JsonSerializerType)) { return(VerificationResultEnum.SecondArgumentMustBeAssignableToJsonSerializer); } if (!_CanAssign(method.ReturnType, JTokenType)) { return(VerificationResultEnum.ReturnTypeMustBeAssignableToJToken); } return(VerificationResultEnum.Ok); }
public VerificationResult(MigrationMethod method, VerificationResultEnum result, SimpleType expectedDataArgumentType) { _ExpectedDataArgumentType = expectedDataArgumentType; Method = method; Result = result; }