public static bool IsDuplicateOperation(IEdmOperation operation, IEnumerable<IEdmOperation> candidateDuplicateOperations)
        {
            var validator = new DuplicateOperationValidator(null);
            foreach (var candidateOperation in candidateDuplicateOperations)
            {
                validator.ValidateNotDuplicate(candidateOperation, true /*skipError*/);
            }

            return validator.ValidateNotDuplicate(operation, true /*skipError*/);
        }
        public static bool IsDuplicateOperation(IEdmOperation operation, IEnumerable <IEdmOperation> candidateDuplicateOperations)
        {
            var validator = new DuplicateOperationValidator(null);

            foreach (var candidateOperation in candidateDuplicateOperations)
            {
                validator.ValidateNotDuplicate(candidateOperation, true /*skipError*/);
            }

            return(validator.ValidateNotDuplicate(operation, true /*skipError*/));
        }
Beispiel #3
0
        // 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.FindDeclaredTerm(operationFullName) != null)
                {
                    return(true);
                }
                else
                {
                    IEnumerable <IEdmOperation> operationList = referenced.FindDeclaredOperations(operationFullName) ?? Enumerable.Empty <IEdmOperation>();
                    if (DuplicateOperationValidator.IsDuplicateOperation(operation, operationList))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
 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;
 }