Пример #1
0
        public async Task <IActionResult> ResetInfo(InfoViewModel model)
        {
            User user = await _userManager.FindByNameAsync(User.Identity.Name);

            user.Address     = model.Address;
            user.Fio         = model.Fio;
            user.PhoneNumber = model.PhoneNumber;
            _context.Update(user);
            await _context.SaveChangesAsync();

            return(Redirect($"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}/Profile/Profile"));
        }
Пример #2
0
        public async Task <IActionResult> AddToCart(string TextileId, string Api = "none")
        {
            bool flag = false;

            if (User.Identity.IsAuthenticated)
            {
                Cart cart = await _context.Carts.Include(x => x.Items).ThenInclude(x => x.Textile).ThenInclude(x => x.Charachteristics).Include(x => x.User)
                            .FirstOrDefaultAsync(x => x.User.UserName == User.Identity.Name);

                foreach (var x in cart.Items)
                {
                    if (x.Textile.TextileId == Guid.Parse(TextileId))
                    {
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    if (_context.Textiles.Find(Guid.Parse(TextileId)).WarehouseAmount >= 1)
                    {
                        await _context.Items.AddAsync(new Item()
                        {
                            ItemId      = Guid.NewGuid(), CartId = cart.CartId, TextileId = Guid.Parse(TextileId),
                            ItemsAmount = 1
                        });

                        await _context.SaveChangesAsync();
                    }
                }
                else
                {
                    if (_context.Textiles.Find(Guid.Parse(TextileId)).WarehouseAmount > cart.Items
                        .FirstOrDefault(x => x.Textile.TextileId == Guid.Parse(TextileId)).ItemsAmount)
                    {
                        cart.Items.FirstOrDefault(x => x.Textile.TextileId == Guid.Parse(TextileId)).ItemsAmount++;
                        _context.Update(cart);
                        await _context.SaveChangesAsync();
                    }
                }
            }
            else
            {
                if (!HttpContext.Request.Cookies.ContainsKey("Cart"))
                {
                    bool flag1;
                    Guid Id     = Guid.NewGuid();
                    Guid CartId = Guid.NewGuid();
                    Cart Cart   = new Cart()
                    {
                        CartId = CartId, NonAuthorizedId = Id
                    };
                    await _context.Carts.AddAsync(Cart);

                    if (_context.Textiles.Find(Guid.Parse(TextileId)).WarehouseAmount >= 1)
                    {
                        await _context.Items.AddAsync(new Item()
                        {
                            ItemId = Guid.NewGuid(), CartId = CartId, TextileId = Guid.Parse(TextileId), ItemsAmount = 1
                        });
                    }
                    await _context.SaveChangesAsync();

                    HttpContext.Response.Cookies.Append("Cart", Id.ToString(),
                                                        new Microsoft.AspNetCore.Http.CookieOptions()
                    {
                        Expires = DateTime.Now.Add(TimeSpan.FromDays(90)), IsEssential = true
                    });
                }
                else
                {
                    bool flag2 = false;
                    Guid Id    = Guid.Parse(HttpContext.Request.Cookies["Cart"]);
                    Cart Cart  = await _context.Carts.Include(x => x.Items).ThenInclude(x => x.Textile).ThenInclude(x => x.Charachteristics)
                                 .FirstOrDefaultAsync(x => x.NonAuthorizedId == Id);

                    foreach (var x in Cart.Items)
                    {
                        if (x.Textile.TextileId == Guid.Parse(TextileId))
                        {
                            flag2 = true;
                            break;
                        }
                    }

                    if (!flag2)
                    {
                        if (_context.Textiles.Find(Guid.Parse(TextileId)).WarehouseAmount >= 1)
                        {
                            _context.Items.Add(new Item()
                            {
                                CartId    = Cart.CartId, ItemId = Guid.NewGuid(), ItemsAmount = 1,
                                TextileId = Guid.Parse(TextileId)
                            });
                            _context.Update(Cart);
                            await _context.SaveChangesAsync();
                        }
                    }
                    else
                    {
                        if (_context.Textiles.Find(Guid.Parse(TextileId)).WarehouseAmount > Cart.Items
                            .FirstOrDefault(x => x.Textile.TextileId == Guid.Parse(TextileId)).ItemsAmount)
                        {
                            Cart.Items.FirstOrDefault(x => x.Textile.TextileId == Guid.Parse(TextileId)).ItemsAmount++;
                            _context.Update(Cart);
                            await _context.SaveChangesAsync();
                        }
                    }
                }
            }

            string Url = Request.Headers["Referer"].ToString();

            if (Api == "none")
            {
                return(Redirect(Url));
            }
            else
            {
                return(Ok());
            }
        }