Exemplo n.º 1
0
        public async Task <IActionResult> OnPost(int productId)
        {
            Product = productData.GetById(productId);
            Photos  = productData.GetPhotosById(productId);
            var loggedUser = await userManager.GetUserAsync(User);

            if (Product == null)
            {
                return(RedirectToPage("./NotFound"));
            }
            else if (loggedUser == null)
            {
                return(RedirectToPage("../Account/Login"));
            }
            else if (!Product.Available)
            {
                TempData["Message"] = "Product unavailable!";
                return(RedirectToPage("./Detail"));
            }
            else
            {
                var memberId = memberData.GetMemberById(loggedUser.Id).Id;
                var result   = memberData.AddToBasket(memberId, productId);
                if (result == null)
                {
                    TempData["Message"] = "Product already in basket!";
                    return(RedirectToPage("./Detail"));
                }
                TempData["Message"] = "Product added to basket!";
                memberData.Commit();
                return(RedirectToPage("./Detail"));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> OnPostDelete(int itemId)
        {
            LoggedUser = await userManager.GetUserAsync(User);

            UserData = memberData.GetMemberById(LoggedUser.Id);
            var item = memberData.GetBasketItem(itemId);

            if (item != null)
            {
                if (UserData.Id == item.MemberId)
                {
                    memberData.DeleteFromBasket(itemId);
                    memberData.Commit();
                    TempData["Message"] = "Item deleted!";
                    return(RedirectToPage("./Basket"));
                }
                else
                {
                    TempData["Message"] = "Nice try! You can not delete this item!";
                    return(RedirectToPage("./Basket"));
                }
            }
            else
            {
                TempData["Message"] = "Item is not existing";
                return(RedirectToPage("./Basket"));
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> OnPost()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = new IdentityUser {
                UserName = userInput.Email, Email = userInput.Email
            };
            var result = await userManager.CreateAsync(user, userInput.Password);

            if (result.Succeeded)
            {
                //Token generation for email confirmation
                var token = await userManager.GenerateEmailConfirmationTokenAsync(user);

                //URL generating
                var confirmationLink = Url.Page("/Account/ConfirmEmail", null, new { userId = user.Id, token = token }, Request.Scheme);
                //Generating mail data
                var message = new Message(new string[] { user.Email }, "Confirm your email address.", confirmationLink);
                //Send autorization link
                emailSender.SendAutorizationEmail(message);

                //New member creation <- for user personal details
                var member = new Member()
                {
                    IdentityId = user.Id
                };
                memberData.Add(member);
                memberData.Commit();

                //Create customer role if not existing in DB
                if (!await roleManager.RoleExistsAsync("Customer"))
                {
                    var identityRole = new IdentityRole("Customer");
                    await roleManager.CreateAsync(identityRole);
                }
                //Add customer user to newly created user
                await userManager.AddToRoleAsync(user, "Customer");

                Message = "Confirm your email address to login.";

                return(RedirectToPage("./Login"));
            }

            foreach (var error in result.Errors)
            {
                ModelState.AddModelError("", error.Description);
            }

            return(Page());
        }
Exemplo n.º 4
0
        public async Task <IActionResult> OnPost()
        {
            if (!ModelState.IsValid)
            {
                return(await RenderPage());
            }

            LoggedUser = await userManager.GetUserAsync(User);

            if (LoggedUser == null)
            {
                return(RedirectToPage("../Index"));
            }

            memberData.Update(UserData);
            memberData.Commit();

            //await userManager.UpdateAsync(LoggedUser);

            return(Page());
        }