private List <CelestialObjectPositionModel> SeedPlanet(CelestialObject planet, Dictionary <DateTimeOffset, CelestialObjectPositionModel> earthPositions) { var result = new List <CelestialObjectPositionModel>(); var celestialObjectId = CelestialObjectDictionary[planet.ToConstant()]; var referenceDate = new DateTimeOffset(1950, 1, 1, 0, 0, 0, TimeSpan.Zero); var endDate = new DateTimeOffset(2100, 1, 1, 0, 0, 0, TimeSpan.Zero); var keplerianModel = KeplerianValueConstants.PlanetKeplerianModels.Single(x => x.SolarSystemObject == planet); while (referenceDate <= endDate) { var dateModel = new KeplerianDateModel(referenceDate, keplerianModel); var calculationModel = new KeplerianCalculationModel(dateModel); if (earthPositions != null) { var earthPosition = earthPositions[referenceDate]; calculationModel.SetEarthPosition(earthPosition.Location, earthPosition.CentricDistance); } var positionModel = planet == CelestialObject.Earth ? new CelestialObjectPositionModel(celestialObjectId, referenceDate, calculationModel.Location, 1, calculationModel.CentricDistance) : new CelestialObjectPositionModel(celestialObjectId, referenceDate, calculationModel); result.Add(positionModel); referenceDate = referenceDate.AddDays(1); } return(result); }