public async Task <IActionResult> GetMyTalks(string moniker)
        {
            try
            {
                var speaker = await _repo.GetSpeakerForCurrentUserAsync(moniker, User.Identity.Name);

                if (speaker != null && speaker.Talks != null)
                {
                    return(Ok(_mapper.Map <IEnumerable <TalkViewModel> >(speaker.Talks)));
                }
                return(Ok(_mapper.Map <IEnumerable <TalkViewModel> >(new List <Talk>())));
            }
            catch (Exception ex)
            {
                _logger.LogError("Failed to get my talks: {0}", ex);
            }

            return(BadRequest("Couldn't load talks."));
        }
        public async Task <ActionResult <SpeakerViewModel> > GetCurrent(string moniker)
        {
            try
            {
                var speaker = await _repo.GetSpeakerForCurrentUserAsync(moniker, User.Identity.Name);

                if (speaker == null)
                {
                    speaker = new Speaker()
                    {
                        Talks    = new List <Talk>(),
                        UserName = User.Identity.Name
                    };
                }
                return(_mapper.Map <SpeakerViewModel>(speaker));
            }
            catch (Exception ex)
            {
                _logger.LogError("Failed to get current speaker: {0}", ex);
            }

            return(BadRequest("Failed to get Speakers"));
        }