private void TrickleDownTrustWorthiness(DrillSiteModel drillSite, DepthReadingModel currentReading, int nRecordsRequired)
        {
            var index = drillSite.DepthReadings.OrderBy(x => x.Id).IndexOf(currentReading);
            // starting index is the current index - the number of records necessary for the query
            // e.g. if we need to query 3 records and current index is 35, then start index would be 32
            var indexOfFirstRequiredReading = Math.Max(0, index - nRecordsRequired);
            var indexToUpdate    = index - indexOfFirstRequiredReading;
            var affectedReadings = drillSite.DepthReadings.OrderBy(x => x.Id).Skip(indexOfFirstRequiredReading).Take(nRecordsRequired * 2 + 1).ToList();

            DrillSiteService.UpdateReadingsTrustworthiness(affectedReadings, indexToUpdate);
        }
Ejemplo n.º 2
0
        public static DrillSiteService CreateRandomDrillSite(DrillConfigModel config, Random random)
        {
            var lng     = random.NextDouble() * 360 - 180;
            var lat     = random.NextDouble() * 180 - 90;
            var azimuth = random.NextDouble() * 360;
            var dip     = random.NextDouble() * 90;
            var date    = DateTime.Now - TimeSpan.FromDays(random.NextDouble() * 7); // up to a week in the past
            var model   = new DrillSiteModel(lat, lng, dip, azimuth, date);

            return(new DrillSiteService(model, config));
        }
 public DrillSiteService(DrillSiteModel drillSiteModel, DrillConfigModel config)
 {
     Config         = config;
     DrillSiteModel = drillSiteModel;
 }