public ActionResult Create(string id)
        {
            if (id is null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    CreateDebitCardViewModel viewModel = new CreateDebitCardViewModel
                    {
                        CardHolderName = context.Users.Find(id).Name,
                        ExpiryDate     = DateTime.Now.ToString()
                    };

                    // Success
                    return(View(viewModel));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                    return(RedirectToAction("ViewAllCustomersCards"));
                }
            }
            return(RedirectToAction("ViewAllCustomersCards"));
        }
        public ActionResult Create(CreateDebitCardViewModel viewModel)
        {
            string userId = User.Identity.GetUserId();

            if (userId is null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    // Success
                    DebitCard card = new DebitCard
                    {
                        CardHolderName = viewModel.CardHolderName,
                        CardNumber     = viewModel.CardNumber,
                        CVV2           = viewModel.CVV2,
                        CustomerId     = userId
                    };

                    if (card is null)
                    {
                        this.AddNotification("Error: card is null", NotificationType.ERROR);
                        return(RedirectToAction("ViewAllCustomersCards", new { id = userId }));
                    }

                    string fourDigitYear = "20" + viewModel.ExpiryDate.Substring(3, 2);

                    int      year  = int.Parse(fourDigitYear);
                    int      month = int.Parse(viewModel.ExpiryDate.Substring(0, 2));
                    DateTime date  = new DateTime(year, month, 1);
                    card.ExpiryDate = date;

                    context.DebitCards.Add(card);
                    context.SaveChanges();
                    this.AddNotification("Card Added", NotificationType.SUCCESS);
                    return(RedirectToAction("ViewAllCustomersCards", new { id = userId }));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                    this.AddNotification("Error: could not add card", NotificationType.ERROR);
                    return(RedirectToAction("ViewAllCustomersCards", new { id = userId }));
                }
            }
            return(RedirectToAction("ViewAllCustomersCards", new { id = userId }));
        }