예제 #1
0
        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);
        }
예제 #2
0
        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)));
        }
예제 #3
0
        public UserMDB GetUserbyName(UserMDB user)
        {
            List <UserMDB> users = _sportsShopDBContext.GetUsers();

            var userFound = new UserMDB();

            foreach (var us in users)
            {
                if (us.Name == user.Name)
                {
                    userFound = us;
                    return(userFound);
                }
            }

            return(userFound);
        }
예제 #4
0
        public UserMDB GetUserbyUserName(UserInfo user)
        {
            List <UserMDB> users = _sportsShopDBContext.GetUsers();

            var userFound = new UserMDB();

            bool t = false;

            foreach (var us in users)
            {
                if (us.UserName == user.Username && us.Password == user.Password)
                {
                    userFound = us;

                    return(userFound);
                }
            }

            return(userFound);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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);
        }
예제 #7
0
        public IEnumerable <Resources.CartModel> GetCarToUser(string id)
        {
            UserMDB user = _sportsShopDBContext.GetUser(id);

            //var cart = _sportsShopDBContext.GetUser(id).Cart;
            List <Resources.CartModel>             carts = new List <Resources.CartModel>();
            IEnumerable <RelatedItem <AddToCart> > cart  = _graphContext
                                                           .GetRelatives <AddToCart>(user)
                                                           .Where(p => p.Relation.Status == AddToCart.CartStatus.InCart);

            foreach (var c in cart)
            {
                Resources.CartModel cm = new Resources.CartModel();
                var prodInfo           = _sportsShopDBContext.GetProduct(c.Node.Id);
                cm.image    = prodInfo.Imagen;
                cm.Name     = prodInfo.Name;
                cm.price    = prodInfo.Precio;
                cm.prodId   = c.Node.Id;
                cm.quantity = c.Relation.Quantity;
                carts.Add(cm);
            }

            return(carts);
        }
예제 #8
0
        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));
        }
예제 #9
0
        public UserMDB RegisterUser(UserMDB user)
        {
            _sportsShopDBContext.CreateUser(user);

            return(user);
        }
예제 #10
0
 public CommonUser(UserMDB user, List <ProductMDB> products)
 {
     User     = user;
     Products = products;
 }
예제 #11
0
 public CommonUser(UserMDB user)
 {
     User     = user;
     Products = new List <ProductMDB>();
 }
예제 #12
0
 public async Task <IActionResult> Register(UserMDB user)
 {
     return(Ok(user));
 }
예제 #13
0
 public void RemoveUser(UserMDB userIn) =>
 _users.DeleteOne(user => user.Id == userIn.Id);
예제 #14
0
 public void UpdateUser(string id, UserMDB userIn) =>
 _users.ReplaceOne(user => user.Id == id, userIn);
예제 #15
0
 public UserMDB CreateUser(UserMDB user)
 {
     _users.InsertOne(user);
     return(user);
 }