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); }
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; }