IEnumerable <TicketRelationshipDto> GetRelationships(Ticket ticket, IGetsRelationshipSummary summaryProvider, ResolutionContext ctx) { return(GetRelationships(ticket.PrimaryRelationships, RelationshipParticipant.Primary, summaryProvider, ctx) .Union(GetRelationships(ticket.SecondaryRelationships, RelationshipParticipant.Secondary, summaryProvider, ctx))); }
IEnumerable <TicketRelationshipDto> GetRelationships(IEnumerable <TicketRelationship> relationships, RelationshipParticipant participant, IGetsRelationshipSummary summaryProvider, ResolutionContext ctx) { return(relationships .Where(x => x != null) .Select(x => GetRelationship(x, participant, summaryProvider, ctx)) .ToArray()); }
TicketRelationshipDto GetRelationship(TicketRelationship relationship, RelationshipParticipant participant, IGetsRelationshipSummary summaryProvider, ResolutionContext ctx) { Ticket relatedTicket; if (participant == RelationshipParticipant.Primary) { relatedTicket = relationship.SecondaryTicket; } else { relatedTicket = relationship.PrimaryTicket; } return(new TicketRelationshipDto { Id = relationship.GetIdentity(), RelationshipId = relationship.Relationship?.GetIdentity(), Summary = summaryProvider.GetSummary(relationship.Relationship, participant), Participant = participant, RelatedTicket = ctx.Mapper.Map <TicketSummaryDto>(relatedTicket), }); }