public async Task <IActionResult> Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(NotFound());
            }

            var session = await _sessionBL.GetSession(id.Value);

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

            //If the user is not an Admin we need to do additional verification
            if (!User.IsInRole("Admin"))
            {
                // Get the user information
                var currentUser = await _userManager.GetUserAsync(User);

                var speaker = await _speakerBL.GetSpeaker(currentUser.SpeakerId.Value);

                //If the user is not the speaker for the session then they should not be able to edit it.
                if (!_sessionBL.IsSessionEditableBySpeaker(session.SessionId, speaker.SpeakerId))
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }

            ViewBag.SkillLevels = SkillLevel.GetSkillLevels();
            return(View(session));
        }
        // GET: Sessions/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(NotFound());
            }

            var session = await _sessionBL.GetSession(id.Value);

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

            ViewBag.SkillLevels = SkillLevel.GetSkillLevels();
            return(View(session));
        }