Пример #1
0
        public async Task <ActionResult <Period> > Get(
            // [Required] string planetName ,
            // [Required] DateTime birthday
            [FromQuery] GetAgeCommand command
            )
        {
            string planetName = command.planetName;
            var    birthday   = command.birthday;

            birthday = DateTime.SpecifyKind(birthday, DateTimeKind.Utc);
            // DateTime birthday1 = new DateTime(1986, 4, 19, 0, 0, 0, DateTimeKind.Utc);

            var planets = await _planetStore.GetPlanets(CancellationToken.None);

            var planet = planets.FirstOrDefault(p => p.Name.Equals(planetName, StringComparison.OrdinalIgnoreCase));

            if (planet == null)
            {
                return(BadRequest($"Planet '{planetName}' not found"));
            }

            Instant now = _clock.GetCurrentInstant();
            Instant bd  = Instant.FromDateTimeUtc(birthday);

            Duration age = now - bd;

            var ageOnPlanet = _ageService.CalculateAge(planet, age);

            return(ageOnPlanet);
        }
Пример #2
0
        public static void ExportPlanets()
        {
            Console.Write("Enter telescope (e.g. TRAPPIST): ");
            string telescopeName = Console.ReadLine();

            IEnumerable <PlanetExportDto> planets = PlanetStore.GetPlanets(telescopeName);

            string json = JsonConvert.SerializeObject(planets
                                                      .Select(p => new
            {
                Name      = p.Name,
                Mass      = p.Mass,
                Orbitting = new[] { p.Orbitting }
            }),
                                                      Formatting.Indented);

            File.WriteAllText($"../../Export/planets-by-{telescopeName}.json", json);
        }
Пример #3
0
        public async Task <IActionResult> Get(CancellationToken cancellationToken)
        {
            var planets = await _planetStore.GetPlanets(cancellationToken);

            return(Ok(planets));
        }