private static ValidationContext ExecuteDuplicateOperationValidator(IEdmModel model) { ValidationContext context = new ValidationContext(model, (object o) => false); DuplicateOperationValidator validator = new DuplicateOperationValidator(context); foreach (var operation in model.SchemaElements.OfType <IEdmOperation>()) { validator.ValidateNotDuplicate(operation, false /*skipError*/); } return(context); }
// Take operation name to avoid recomputing it internal static bool OperationOrNameExistsInReferencedModel(this IEdmModel model, IEdmOperation operation, string operationFullName) { foreach (IEdmModel referenced in model.ReferencedModels) { if (referenced.FindDeclaredType(operationFullName) != null || referenced.ExistsContainer(operationFullName) || referenced.FindDeclaredValueTerm(operationFullName) != null) { return(true); } else { IEnumerable <IEdmOperation> operationList = referenced.FindDeclaredOperations(operationFullName) ?? Enumerable.Empty <IEdmOperation>(); if (DuplicateOperationValidator.IsDuplicateOperation(operation, operationList)) { return(true); } } } return(false); }