public async Task <IActionResult> OnPostAsync()
        {
            if (ModelState.IsValid)
            {
                var userId = EasyMethods.GetUserId(User);
                LoyaltyCard.AplicationUserId = userId;

                _db.LoyaltyCards.Add(LoyaltyCard);
                await _db.SaveChangesAsync();

                return(RedirectToPage("Index"));
            }
            return(Page());
        }
示例#2
0
        public async Task <IActionResult> OnGetAsync()
        {
            if (!User.IsInRole(StaticDetails.BusinessEndUser))
            {
                return(RedirectToPage("/RegisterBusinessAccount/Index"));
            }

            var userId = EasyMethods.GetUserId(User);

            ICollection <LoyaltyCard> loyaltyCards = await _db.LoyaltyCards.Where(l => l.AplicationUserId == userId).ToListAsync();

            CardCreationViewModel = new CardCreationViewModel
            {
                LoyaltyCards = loyaltyCards,
            };
            return(Page());
        }
        public async Task <IActionResult> OnGetAsync()
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToPage("FindUser"));
            }

            var userId = EasyMethods.GetUserId(User);

            ClientCards = await _db.ClientCards
                          .Include(c => c.LoyaltyCard)
                          .Include(c => c.LoyaltyCard.AplicationUser)
                          .AsNoTracking()
                          .Where(c => c.AplicationUserId == userId).ToListAsync();

            return(Page());
        }
示例#4
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (string.IsNullOrWhiteSpace(RedeemCodeViewModel.Code))
            {
                return(Page());
            }

            var userId        = EasyMethods.GetUserId(User);
            var businessCards = await _db.LoyaltyCards
                                .AsNoTracking()
                                .Where(l => l.AplicationUserId == userId)
                                .ToListAsync();

            if (businessCards != null)
            {
                //find the client card with the voucher code where the Loyalty card belongs to this business user, so that the user can't redeem codes from other business users
                var clientCard = await _db.ClientCards.FirstOrDefaultAsync(c => c.VoucherCode == RedeemCodeViewModel.Code);

                if (clientCard != null && businessCards.Exists(b => b.Id == clientCard.LoyaltyCardId))
                {
                    if (!clientCard.IsRedeemed)
                    {
                        clientCard.IsRedeemed = true;
                        await _db.SaveChangesAsync();

                        RedeemCodeViewModel.Message = new Message
                        {
                            MessageType = Message.Type.Successful,
                            Text        = "Card has been redeemed, give the client his god dam prize! :)"
                        };
                    }
                    else
                    {
                        //Card has already been redeemed
                        RedeemCodeViewModel.Message = new Message
                        {
                            MessageType = Message.Type.Info,
                            Text        = "Card has already been redeemed"
                        };
                    }
                }
                else
                {
                    //Could not find card
                    RedeemCodeViewModel.Message = new Message
                    {
                        MessageType = Message.Type.Error,
                        Text        = "Could not find this voucher code"
                    };
                }
            }
            else
            {
                RedeemCodeViewModel.Message = new Message
                {
                    MessageType = Message.Type.Info,
                    Text        = "You don't have any Loyalty Cards!"
                };
            }
            return(Page());
        }