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)); }
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)); }