public bool AreRelationshipsValid(IIdentity <Ticket> editedTicket, IEnumerable <TheoreticalRelationship> relationships)
        {
            if (ReferenceEquals(relationships, null))
            {
                return(true);
            }

            logger.Debug($"Beginning validation, considering {relationships.Count()} relationship(s)");

            if (AreThereAnyProhibitedRelationships(editedTicket, relationships))
            {
                return(false);
            }
            return(wrapped.AreRelationshipsValid(editedTicket, relationships));
        }
예제 #2
0
        protected override RuleOutcome GetOutcome(IChangesTicketRelationships validated)
        {
            var theoreticalRelationships = theoreticalRelationshipProvider.GetTheoreticalTicketRelationships(
                ticketIdentity: validated.EditedTicket,
                added: validated.RelationshipsToAdd,
                removed: validated.RelationshipsToRemove
                );

            if (logger.IsDebugEnabled)
            {
                logger.Debug($"Theoretical relationships: {String.Join(", ", theoreticalRelationships)}");
            }

            if (relationshipValidator.AreRelationshipsValid(validated.EditedTicket, theoreticalRelationships))
            {
                return(Success);
            }

            return(Failure);
        }