public IActionResult Post(TopSecretRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var received = request.Satellites.Select(
                s => new ReceivedMessage()
            {
                SatelliteName = s.Name,
                Distance      = s.Distance,
                Message       = s.Message
            });

            var recovered = _messageRecovery.GetMessage(received);
            var location  = _locatorService.GetLocation(received);

            var response = new TopSecretResponse()
            {
                Location = new CoordinateContract(location.X, location.Y),
                Messsage = recovered.Message
            };

            return(Ok(response));
        }
        public IActionResult Post(TopSecretRequest request)
        {
            var satellites = request.Satellites.Select(
                s => new Satellite()
            {
                Name            = s.Name,
                ReceivedMessage = new ReceivedMessage()
                {
                    Distance = s.Distance,
                    Message  = s.Message
                }
            });

            var returnedMessage = _secretApplication.ProcessMessage(satellites);

            return(Ok(new TopSecretResponse()
            {
                Position = returnedMessage.Location,
                Message = returnedMessage.Message
            }));
        }