private SegmentTrackInfo GetOrCreateSegmentTrackInfo(TrackInfo trackInfo, ISegment targetSegment) { var segment = trackInfo.SegmentTrackInfos.Find(x => x.SegmentId == targetSegment.Properties.Id.Id); if (segment == null) { var segmentId = targetSegment.Properties.Id.Id; segment = new SegmentTrackInfo { SegmentId = segmentId }; trackInfo.SegmentTrackInfos.Add(segment); } return(segment); }
private SegmentTrackInfo GetOrCreateSegmentTrackInfo(TrackInfo trackInfo, ISegment targetSegment, bool shouldCreate) { if (trackInfo.SegmentTrackInfos == null) { var exceptionMessage = string.Format("SegmentTrackInfos is null for project {0} and segment {1}!", trackInfo.ProjectName, targetSegment); throw new ArgumentNullException(exceptionMessage); } if (targetSegment == null) { var exceptionMessage = string.Format("Segment is null for {0}!", trackInfo.ProjectName); throw new ArgumentNullException(exceptionMessage); } if (targetSegment.Properties == null) { var exceptionMessage = string.Format("Segment properties are null for {0}!", trackInfo.ProjectName); throw new ArgumentNullException(exceptionMessage); } SegmentTrackInfo segment = trackInfo.SegmentTrackInfos.Find(x => x.SegmentId == targetSegment.Properties.Id.Id); if (segment == null && shouldCreate) { var segmentId = targetSegment.Properties.Id.Id; segment = new SegmentTrackInfo { SegmentId = segmentId }; trackInfo.SegmentTrackInfos.Add(segment); } return(segment); }