private FieldVisitInfo MergeOrCreateVisit(LocationInfo location, StageDischargeReadingRecord visitRecord) { var existingVisit = FindExistingVisit(visitRecord); if (existingVisit != null) { MergeWithExistingVisit(existingVisit, visitRecord); return(existingVisit); } var visitStart = visitRecord.MeasurementStartDateTime; var visitEnd = visitRecord.MeasurementEndDateTime; var fieldVisitDetails = new FieldVisitDetails(new DateTimeInterval(visitStart, visitEnd)) { Comments = visitRecord.Comments, Party = visitRecord.Party }; var fieldVisitInfo = _fieldDataResultsAppender.AddFieldVisit(location, fieldVisitDetails); CreatedVisits.Add(fieldVisitInfo); if (IsValidMeasurementId(visitRecord.MeasurementId)) { AddVisitByMeasurementId(fieldVisitInfo, visitRecord); } return(fieldVisitInfo); }
public FieldVisitInfo AddFieldVisit(LocationInfo location, FieldVisitDetails fieldVisitDetails) { var fieldVisitInfo = InternalConstructor <FieldVisitInfo> .Invoke(location, fieldVisitDetails); AppendedResults.AppendedVisits.Add(fieldVisitInfo); return(fieldVisitInfo); }
private FieldVisitInfo CreateFieldVisit(LocationInfo location, CrossSectionSurvey crossSectionSurvey) { var fieldVisit = new FieldVisitDetails(crossSectionSurvey.SurveyPeriod) { Party = crossSectionSurvey.Party }; return(_fieldDataResultsAppender.AddFieldVisit(location, fieldVisit)); }
public FieldVisitInfo AddFieldVisit(LocationInfo location, FieldVisitDetails fieldVisitDetails) { var existingVisit = DelayedFieldVisits .FirstOrDefault(visit => visit.LocationInfo.LocationIdentifier == location.LocationIdentifier && DoPeriodsOverlap(visit.FieldVisitDetails.FieldVisitPeriod, fieldVisitDetails.FieldVisitPeriod)); if (existingVisit != null) { return(existingVisit); } var fieldVisitInfo = InternalConstructor <FieldVisitInfo> .Invoke(location, fieldVisitDetails); DelayedFieldVisits.Add(fieldVisitInfo); return(fieldVisitInfo); }
private FieldVisitInfo CreateVisit(LocationInfo locationInfo) { var stationTimes = DataFile .Stations .Select(s => s.CreationTime) .OrderBy(dt => dt) .ToList(); var startTime = stationTimes.First(); var endTime = stationTimes.Last(); var fieldVisitPeriod = new DateTimeInterval(startTime, endTime); var visitDetails = new FieldVisitDetails(fieldVisitPeriod) { Party = DataFile.Properties.Operator }; return(_resultsAppender.AddFieldVisit(locationInfo, visitDetails)); }