Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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));
        }