private SegmentTrackInfo GetOrCreateSegmentTrackInfo(TrackInfo trackInfo, ISegment targetSegment) { 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); } 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) { 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; }