List <TheoreticalRelationship> GetAddedRelationships(IIdentity <Ticket> editedTicketIdentity, IEnumerable <AddRelationshipRequest> added) { if (added == null || !added.Any()) { return(new List <TheoreticalRelationship>()); } return(added .Where(x => !ReferenceEquals(x.RelationshipId, null)) .Select(add => new { relatedTicket = ticketProvider.GetTicketByReference(add.RelatedTicketReference), relatedIsPrimary = add.ParticipationType == RelationshipParticipant.Secondary, relationshipType = data.Get(add.RelationshipId) }) .Where(x => x.relatedTicket != null) .Select(x => { logger.Debug($"{nameof(GetAddedRelationships)} found added relationship {x.relationshipType}"); return new TheoreticalRelationship { Relationship = x.relationshipType, PrimaryTicket = x.relatedIsPrimary? x.relatedTicket.GetIdentity() : editedTicketIdentity, SecondaryTicket = x.relatedIsPrimary ? editedTicketIdentity : x.relatedTicket.GetIdentity(), Type = TheoreticalRelationshipType.Added, }; }) .ToList()); }
public TicketRelationship CreateTicketRelationship(IIdentity <Relationship> relationshipId, TicketReference relatedTicketReference, RelationshipParticipant participationType) { if (relationshipId == null || relatedTicketReference == null || !participationType.IsDefinedValue()) { return(null); } var relatedTicket = ticketQuery.GetTicketByReference(relatedTicketReference); if (relatedTicket == null) { return(null); } var relationship = new TicketRelationship { Relationship = data.Theorise(relationshipId), }; if (participationType == RelationshipParticipant.Primary) { relationship.SecondaryTicket = relatedTicket; } if (participationType == RelationshipParticipant.Secondary) { relationship.PrimaryTicket = relatedTicket; } return(relationship); }
Ticket GetTicket(TicketReference reference) { if (reference == null) { return(null); } return(ticketProvider.GetTicketByReference(reference)); }
public ActionResult Edit(TicketReference id) { var ticket = ticketProvider.GetTicketByReference(id); if (ReferenceEquals(ticket, null)) { logger.DebugFormat("Ticket reference (to edit) not found: {0}", id); return(HttpNotFound()); } var editModelFactory = editTicketModelFactory.Value; var model = editModelFactory.GetEditTicketModel(ticket); return(View(model)); }
public GetWorklogResponse GetWorkLog(AddWorkLogRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (request.User == null) { throw new ArgumentException("User must not be null", nameof(request)); } TimeSpan time; try { time = timespanParser.GetTimeSpan(request.TimeSpent); } catch (FormatException) { return(new GetWorklogResponse { Success = false, TimeSpentIsInvalid = true, }); } var ticket = ticketProvider.GetTicketByReference(request.TicketReference); if (ticket == null) { return new GetWorklogResponse { Success = false, TicketNotFound = true, } } ; var worklog = new TicketWorkLog { User = request.User, TimeStarted = request.TimeStarted, }; worklog.SetTimeSpent(time); return(new GetWorklogResponse { Success = true, Ticket = ticket, WorkLog = worklog, }); }
public IIdentity <Ticket> GetTargetEntityIdentity(TicketReference value) => ticketProvider.GetTicketByReference(value)?.GetIdentity();
public IIdentity <Ticket> GetTargetEntityIdentity(AddWorkLogRequest value) => ticketProvider.GetTicketByReference(value.TicketReference)?.GetIdentity();