public void UpdateTrackingHistory(TrackingRequestDto trackingRequestDto) { foreach (var trackingDto in trackingRequestDto.TrackingDtos) { var tracking = trackingDto.MapTo <Tracking>(); tracking.Address = tracking.Address.Replace("92", "\\"); bool hasInsert = false; if (trackingDto.RequestIds != null && trackingDto.RequestIds.Count > 0) { foreach (var requestId in trackingDto.RequestIds) { var objRequest = _requestRepository.GetById(requestId); if (objRequest != null) { var trackingClone = tracking.Clone() as Tracking; objRequest.Trackings.Add(trackingClone); hasInsert = true; } } } if (!hasInsert) { _trackingRepository.Add(tracking); } } _requestRepository.Commit(); _trackingRepository.Commit(); }