// GET: Speakers/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            // If no id specified, return not found
            if (id == null)
            {
                return(NotFound());
            }

            if (!await _speakerBL.SpeakerExists(id.Value))
            {
                return(NotFound());
            }

            // Find the specified speaker
            var speaker = await _speakerBL.GetSpeakerViewModel(id.Value);

            // If the speaker is not found, return not found
            if (speaker == null)
            {
                return(NotFound());
            }

            // Else return the view with the speaker information
            return(View(speaker));
        }
Example #2
0
        // GET: Speakers/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            // Get the user information
            var user = await _userManager.GetUserAsync(User);

            // If no id specified, return not found
            if (id == null)
            {
                return(NotFound());
            }

            if (!await _speakerBL.SpeakerExists(id.Value))
            {
                return(NotFound());
            }

            SpeakerViewModel speaker = null;

            // Find the specified speaker
            if (User.IsInRole("Admin"))
            {
                // Get all sessions
                speaker = await _speakerBL.GetSpeakerViewModel(id.Value);
            }
            else if (user != null && user.SpeakerId != null &&
                     user.SpeakerId == id.Value)
            {
                // Get all sessions
                speaker = await _speakerBL.GetSpeakerViewModel(id.Value);
            }
            else
            {
                // Only get approved sessions
                speaker = await _speakerBL.GetSpeakerViewModel(id.Value, true);
            }

            // If the speaker is not found, return not found
            if (speaker == null)
            {
                return(NotFound());
            }

            // Else return the view with the speaker information
            return(View(speaker));
        }
Example #3
0
        public async Task <IActionResult> OnGetAsync(string loginWithRegistration = null)
        {
            ViewData["MaxImageSize"] = SpeakerViewModel.MaxImageSize / 1000;

            LoginWithRegistration = loginWithRegistration;

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            // Finish registering the user as a speaker
            if (loginWithRegistration == "Speaker")
            {
                // Set role as Speaker
                user.IsAttending = true;
                user.IsSpeaker   = true;
                await _userManager.AddToRoleAsync(user, "Speaker");

                // Remove Attendee role
                await _userManager.RemoveFromRoleAsync(user, "Attendee");

                // Set the users event to the current event
                var currentEvent
                    = await _eventBL.GetActiveEvent();

                if (user.EventId.HasValue == false ||
                    (user.EventId.HasValue == true &&
                     user.EventId.Value != currentEvent.EventId))
                {
                    user.EventId = currentEvent.EventId;
                }

                // Save the changes
                await _context.SaveChangesAsync();
            }
            else if (LoginWithRegistration == "Attendee")
            {
                // Set role as Speaker
                user.IsAttending = true;

                // Set the users event to the current event
                var currentEvent
                    = await _eventBL.GetActiveEvent();

                if (user.EventId.HasValue == false ||
                    (user.EventId.HasValue == true &&
                     user.EventId.Value != currentEvent.EventId))
                {
                    user.EventId = currentEvent.EventId;
                }

                // Save the changes
                await _context.SaveChangesAsync();
            }

            IsSpeaker = User.IsInRole("Speaker");

            var userName = await _userManager.GetUserNameAsync(user);

            var email = await _userManager.GetEmailAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            Username = userName;

            if (IsSpeaker && user.SpeakerId.HasValue)
            {
                // Retrieve the associated speaker
                var speaker = await _speakerBL.GetSpeakerViewModel(user.SpeakerId.Value);

                Input = new InputModel()
                {
                    SpeakerId          = speaker.SpeakerId,
                    FirstName          = user.FirstName,
                    LastName           = user.LastName,
                    GeographicLocation = user.GeographicLocation,
                    TwitterHandle      = user.TwitterHandle,
                    IsVolunteer        = user.IsVolunteer,
                    Email            = email,
                    PhoneNumber      = phoneNumber,
                    CompanyName      = speaker != null ? speaker.CompanyName : string.Empty,
                    Bio              = speaker != null ? speaker.Bio : string.Empty,
                    WebsiteUrl       = speaker != null ? speaker.WebsiteUrl : string.Empty,
                    BlogUrl          = speaker != null ? speaker.BlogUrl : string.Empty,
                    LinkedIn         = speaker != null ? speaker.LinkedIn : string.Empty,
                    IsMvp            = speaker != null ? speaker.IsMvp : false,
                    NoteToOrganizers = speaker != null ? speaker.NoteToOrganizers : string.Empty
                };
            }
            else // An Attendee
            {
                Input = new InputModel
                {
                    FirstName          = user.FirstName,
                    LastName           = user.LastName,
                    GeographicLocation = user.GeographicLocation,
                    TwitterHandle      = user.TwitterHandle,
                    IsVolunteer        = user.IsVolunteer,
                    Email       = email,
                    PhoneNumber = phoneNumber
                };
            }

            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);

            return(Page());
        }