public async Task <ActionResult <EventDTO.SpeakerResponse> > PostSpeaker(EventDTO.Speaker input)
        {
            var speaker = new Speaker
            {
                Name    = input.Name,
                WebSite = input.WebSite,
                Bio     = input.Bio
            };

            _db.Speakers.Add(speaker);
            await _db.SaveChangesAsync();

            var result = speaker.MapSpeakerResponse();

            return(CreatedAtAction(nameof(GetSpeaker), new { id = speaker.ID }, result));
        }
        public async Task <IActionResult> PutSpeaker(int id, EventDTO.Speaker input)
        {
            var speaker = await _db.FindAsync <Speaker>(id);

            if (speaker == null)
            {
                return(NotFound());
            }

            speaker.Name    = input.Name;
            speaker.WebSite = input.WebSite;
            speaker.Bio     = input.Bio;

            // TODO: Handle exceptions, e.g. concurrency
            await _db.SaveChangesAsync();

            return(NoContent());
        }