private async Task CreateAndSaveCard(CreateSkiCardViewModel viewModel) { var userId = _userManager.GetUserId(User); _logger.LogDebug($"Creating ski card for {userId}"); using (_logger.BeginScope($"CreateSkiCard: {userId}")) { Guid?imageId = null; if (HasCardImage(viewModel)) { imageId = await UploadImage(viewModel, userId); } _logger.LogInformation($"Saving ski card to DB for {userId}"); var skiCard = new SkiCard { ApplicationUserId = userId, CreatedOn = DateTime.UtcNow, CardHolderFirstName = viewModel.CardHolderFirstName, CardHolderLastName = viewModel.CardHolderLastName, CardHolderBirthDate = viewModel.CardHolderBirthDate.Value.Date, CardHolderPhoneNumber = viewModel.CardHolderPhoneNumber, CardImageId = imageId }; _skiCardContext.SkiCards.Add(skiCard); await _skiCardContext.SaveChangesAsync(); _logger.LogInformation("Ski card created for " + userId); } }
public async Task <ActionResult> Create(CreateSkiCardViewModel viewModel) { if (ModelState.IsValid) { var userId = _userManager.GetUserId(User); SkiCard skiCard = new SkiCard { ApplicationUserId = userId, CreatedOn = DateTime.UtcNow, CardHolderFirstName = viewModel.CardHolderFirstName, CardHolderLastName = viewModel.CardHolderLastName, CardHolderBirthDate = viewModel.CardHolderBirthDate.Value.Date, CardHolderPhoneNumber = viewModel.CardHolderPhoneNumber }; _skiCardContext.SkiCards.Add(skiCard); await _skiCardContext.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(viewModel)); }
private async Task <Guid> UploadImage(CreateSkiCardViewModel viewModel, string userId) { Guid imageId; _logger.LogInformation("Uploading ski card image for " + userId); imageId = Guid.NewGuid(); await _uploadservice.UploadFileFromStream("cardimages", $"{imageId}.jpg", viewModel.CardImage.OpenReadStream()); return(imageId); }
public async Task <ActionResult> Create(CreateSkiCardViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } await CreateAndSaveCard(viewModel); _logger.LogDebug($"Ski card for {_userManager.GetUserId(User)} created successfully, redirecting to Index..."); return(RedirectToAction(nameof(Index))); }
public async Task <ActionResult> Create() { var userId = _userManager.GetUserId(User); var currentUser = await _userManager.FindByIdAsync(userId); var viewModel = new CreateSkiCardViewModel { CardHolderPhoneNumber = currentUser.PhoneNumber }; var hasExistingSkiCards = _skiCardContext.SkiCards.Any(s => s.ApplicationUserId == userId); if (!hasExistingSkiCards) { viewModel.CardHolderFirstName = currentUser.FirstName; viewModel.CardHolderLastName = currentUser.LastName; } return(View(viewModel)); }
// GET: SkiCard/Create public async Task <ActionResult> Create() { var userId = _userManager.GetUserId(User); var currentUser = await _userManager.FindByIdAsync(userId); var viewModel = new CreateSkiCardViewModel { CardHolderPhoneNumber = currentUser.PhoneNumber }; //If this is the user's first card, auto-populate the name properties since this card is //most likely for that user. Otherwise assume the card is for a family member and leave //the name properties blank. var hasExistingSkiCards = _skiCardContext.SkiCards.Any(s => s.ApplicationUserId == userId); if (!hasExistingSkiCards) { viewModel.CardHolderFirstName = currentUser.FirstName; viewModel.CardHolderLastName = currentUser.LastName; } return(View(viewModel)); }
private bool HasCardImage(CreateSkiCardViewModel viewModel) { return(viewModel.CardImage != null); }