Exemple #1
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }
Exemple #6
0
        // 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));
        }
Exemple #7
0
 private bool HasCardImage(CreateSkiCardViewModel viewModel)
 {
     return(viewModel.CardImage != null);
 }