public async Task <IActionResult> Create([Bind("SessionId,Name,Description,SkillLevel,Keywords")] Session session)
        {
            if (ModelState.IsValid)
            {
                var theEvent = await _eventBL.GetActiveEvent();

                if (theEvent != null)
                {
                    session.EventId = theEvent.EventId;

                    // Add the user to the list of speakers
                    Speaker speaker = null;
                    // Get the user information
                    var user = await _userManager.GetUserAsync(User);

                    // Does the user exist and are they a speaker?
                    if (user != null && user.SpeakerId.HasValue)
                    {
                        speaker = await _speakerBL.GetSpeaker(user.SpeakerId.Value);
                    }

                    // If the user is not a speaker, return to the speakers page
                    if (speaker == null)
                    {
                        return(RedirectToAction(nameof(Index)));
                    }

                    await _sessionBL.CreateSession(session, speaker.SpeakerId);

                    return(RedirectToAction(nameof(Index)));
                }
            }

            return(View(session));
        }
Пример #2
0
        public async Task <IActionResult> Edit(int id,
                                               [Bind("SpeakerId,CodecampUserId,FirstName,LastName,CompanyName,ImageFile,ResizeImage,Bio,WebsiteUrl,BlogUrl,GeographicLocation,TwitterHandle,LinkedIn,IsVolunteer,IsMvp,NoteToOrganizers,Email,PhoneNumber,IsApproved")] SpeakerViewModel speakerVM)
        {
            if (ModelState.IsValid)
            {
                if (id != speakerVM.SpeakerId)
                {
                    return(NotFound());
                }

                var speaker = await _speakerBL.GetSpeaker(id);

                // Update the speaker information from the page
                speaker.CompanyName      = speakerVM.CompanyName;
                speaker.Bio              = speakerVM.Bio;
                speaker.WebsiteUrl       = speakerVM.WebsiteUrl;
                speaker.BlogUrl          = speakerVM.BlogUrl;
                speaker.NoteToOrganizers = speakerVM.NoteToOrganizers;
                speaker.IsApproved       = speakerVM.IsApproved;
                speaker.IsMvp            = speakerVM.IsMvp;
                speaker.LinkedIn         = speakerVM.LinkedIn;
                speaker.CodecampUserId   = speakerVM.CodecampUserId;

                // Convert the image to a byte array, reduce the size to 300px x 300px
                // and store it in the database
                if (speakerVM.ImageFile != null &&
                    speakerVM.ImageFile.ContentType.ToLower().StartsWith("image/") &&
                    speakerVM.ImageFile.Length <= SpeakerViewModel.MaxImageSize)
                {
                    MemoryStream ms = new MemoryStream();
                    speakerVM.ImageFile.OpenReadStream().CopyTo(ms);

                    speaker.Image
                        = _speakerBL.ResizeImage(ms.ToArray());
                }

                var result = await _speakerBL.UpdateSpeaker(speaker);

                var user = await _userBL.GetUser(speakerVM.CodecampUserId);

                // Update the user information from the page
                user.FirstName          = speakerVM.FirstName;
                user.LastName           = speakerVM.LastName;
                user.GeographicLocation = speakerVM.GeographicLocation;
                user.TwitterHandle      = speakerVM.TwitterHandle;
                user.IsVolunteer        = speakerVM.IsVolunteer;
                user.Email       = speakerVM.Email;
                user.PhoneNumber = speakerVM.PhoneNumber;

                result &= await _userBL.UpdateUser(user);

                if (result == false)
                {
                    return(NotFound());
                }
                else
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }

            return(View(speakerVM));
        }