public AddToCart AddProductToCart(string id, Cart cart) { UserMDB user = _sportsShopDBContext.GetUser(id); ProductMDB product = _sportsShopDBContext.GetProduct(cart.ProductId); AddToCart cartAdd = _graphContext .GetRelations <AddToCart>(user, product) .Where(c => c.Status == AddToCart.CartStatus.InCart || c.Status == AddToCart.CartStatus.Deleted || c.Status == AddToCart.CartStatus.Bought) .FirstOrDefault(); bool itemInCart = cartAdd != null; if (itemInCart && (cartAdd.Status == AddToCart.CartStatus.InCart || cartAdd.Status == AddToCart.CartStatus.Deleted || cartAdd.Status == AddToCart.CartStatus.Bought)) { cartAdd.Quantity += cart.Quantity; cartAdd.Date = System.DateTime.Now; cartAdd.Status = AddToCart.CartStatus.InCart; _graphContext.UpdateRelation(user, cartAdd, product); } else { cartAdd = new AddToCart(cart.Quantity); _graphContext.CreateRelation(user, cartAdd, product); } return(cartAdd); }
public async Task <IActionResult> Buy(Resources.Bought bought) { UserMDB user = _sportsShopDBContext.GetUser(bought.UserId); IEnumerable <CartModel> products = bought.Articles; foreach (var cart in products) { ProductMDB product = _sportsShopDBContext.GetProduct(cart.prodId); product.UnDisp = product.UnDisp - cart.quantity; _sportsShopDBContext.UpdateProduct(product.Id, product); AddToCart cartAdd = _graphContext .GetRelations <AddToCart>(user, product) .Where(c => c.Status == AddToCart.CartStatus.InCart) .FirstOrDefault(); bool itemInCart = cartAdd != null; if (itemInCart && cartAdd.Status == AddToCart.CartStatus.InCart) { cartAdd.Date = System.DateTime.Now; cartAdd.Status = AddToCart.CartStatus.Bought; } if (cartAdd != null) { for (int i = 0; i < cartAdd.Quantity; i++) { _graphContext.CreateRelation(user, new Models.Bought(), product); } } cartAdd.Quantity = 0; _graphContext.UpdateRelation(user, cartAdd, product); } return(Ok(_graphContext.GetRelatives <Models.Bought>(user))); }
public List <CartModel> DeleteProdToCart(string id, string prodId) { UserMDB user = _sportsShopDBContext.GetUser(id); ProductMDB product = _sportsShopDBContext.GetProduct(prodId); AddToCart cartAdd = _graphContext .GetRelations <AddToCart>(user, product) .Where(c => c.Status == AddToCart.CartStatus.InCart) .FirstOrDefault(); bool itemInCart = cartAdd != null; if (itemInCart && cartAdd.Status == AddToCart.CartStatus.InCart) { cartAdd.Quantity = 0; cartAdd.Date = System.DateTime.Now; cartAdd.Status = AddToCart.CartStatus.Deleted; _graphContext.UpdateRelation(user, cartAdd, product); } List <CartModel> newCartID = new List <CartModel>(); _graphContext .GetRelatives <AddToCart>(user) .Where(p => p.Relation.Status == AddToCart.CartStatus.InCart).ToList().ForEach( value => newCartID.Add(new CartModel { prodId = value.Node.Id, quantity = value.Relation.Quantity })); List <CartModel> newCart = new List <CartModel>(); foreach (var c in newCartID) { var productInfo = _sportsShopDBContext.GetProduct(c.prodId); c.image = productInfo.Imagen; c.price = productInfo.Precio; newCart.Add(c); } return(newCart); }
public Cart UpdateProdToCart(string id, Cart prod) { UserMDB user = _sportsShopDBContext.GetUser(id); ProductMDB product = _sportsShopDBContext.GetProduct(prod.ProductId); AddToCart cartAdd = _graphContext .GetRelations <AddToCart>(user, product) .Where(c => c.Status == AddToCart.CartStatus.InCart) .FirstOrDefault(); bool itemInCart = cartAdd != null; if (itemInCart && cartAdd.Status == AddToCart.CartStatus.InCart) { cartAdd.Quantity = prod.Quantity; cartAdd.Date = System.DateTime.Now; _graphContext.UpdateRelation(user, cartAdd, product); } return(prod); }
public async Task <IActionResult> SearchClientsInCommon(string id) { var user = _sportsShopDBContext.GetUser(id); List <Resources.CommonUser> users = new List <Resources.CommonUser>(); var articles = _graphContext.GetRelatives <Bought>(user); foreach (var article in articles) { ProductMDB product = _sportsShopDBContext.GetProduct(article.Node.Id); var commonUsers = _graphContext.GetRelativesInverse <Bought>(product); foreach (var commonUser in commonUsers) { string commonUserId = commonUser.Node.Id; if (commonUserId != id) { UserMDB userMDB = _sportsShopDBContext.GetUser(commonUserId); var alreadyInCommon = users.Where(u => u.User.Id == commonUserId).FirstOrDefault(); if (alreadyInCommon != null) { alreadyInCommon.Products.Add(product); } else { var temp = new Resources.CommonUser(userMDB); temp.Products.Add(product); users.Add(temp); } } } } return(Ok(users)); }
public ProductMDB CreateProduct(ProductMDB product) { _sportsShopDBContext.CreateProduct(product); return(product); }
public void RemoveProduct(ProductMDB productIn) => _products.DeleteOne(product => product.Id == productIn.Id);
public void UpdateProduct(string id, ProductMDB productIn) => _products.ReplaceOne(product => product.Id == id, productIn);
public ProductMDB CreateProduct(ProductMDB product) { _products.InsertOne(product); return(product); }
public Article(string date, ProductMDB article) { Date = date; this.Product = article; }