public async Task <IActionResult> PutSpeaker(int id, ConferenceDTO.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;

            #region Generated try block
            //if (id != speaker.ID)
            //{
            //    return BadRequest();
            //}

            //_db.Entry(speaker).State = EntityState.Modified;

            //try
            //{
            //    await _db.SaveChangesAsync();
            //}
            //catch (DbUpdateConcurrencyException)
            //{
            //    if (!SpeakerExists(id))
            //    {
            //        return NotFound();
            //    }
            //    else
            //    {
            //        throw;
            //    }
            //}
            #endregion

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

            return(NoContent());
        }
        public async Task <ActionResult <ConferenceDTO.SpeakerResponse> > PostSpeaker(ConferenceDTO.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));
        }