예제 #1
0
        public User GetUser(int id)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                //EF.User efUser = uow.Users.GetAll().FirstOrDefault();

                EF.User efUser = uow.Users.GetById(id);
                if (efUser is null)
                {
                    return(null);
                }

                User user = new User()
                {
                    Id       = efUser.Id,
                    Username = efUser.Username,
                    Password = efUser.Password,
                    Role     = efUser.Role
                };

                return(user);
            }
        }
예제 #2
0
        public void AddProductToCart(int userId, CartItem cartItem)
        {// ovde moras provjeriti da li se dodaje postojeci item, ako dodaje povecaj mu samo quantity
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork      uow           = new UnitOfWork(context);
                List <CartItem> userCartItems = GetCartItems(userId).ToList();
                foreach (CartItem item in userCartItems)
                {
                    if (item.Code == cartItem.Code)
                    {
                        EF.CartProduct dboCartProduct1 = new EF.CartProduct();
                        dboCartProduct1           = _mapper.Map <EF.CartProduct>(item);
                        dboCartProduct1.Quantity += cartItem.Quantity;

                        context.CartProduct.Update(dboCartProduct1);
                        context.SaveChanges();

                        return;
                    }
                }
                // EF.Cart cart = context.Cart.Where(c => c.UserId == userId).SingleOrDefault();
                EF.CartProduct dboCartProduct = new EF.CartProduct();
                //dboCartProduct.CartId = cart.Id;
                dboCartProduct.Code     = cartItem.Code;
                dboCartProduct.Quantity = cartItem.Quantity;

                uow.Carts.GetByUserId(userId).CartProduct.Add(dboCartProduct);
                //uow.Users.addCartProduct(dboCartProduct);

                uow.Commit();
            }
        }
예제 #3
0
 public bool CheckIfUserExists(int userId)
 {
     using (EF.APShopContext context = new EF.APShopContext())
     {
         UnitOfWork uow = new UnitOfWork(context);
         return(uow.Users.CheckIfUserExists(userId));
     }
 }
예제 #4
0
        public Product GetProductById(int productId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var dbProduct = uow.Products.GetProductById(productId);

                return(_mapper.Map <Product>(dbProduct));
            }
        }
예제 #5
0
        public List <Product> GetProductsByFilters(FiltersDTO filters)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var dbProducts = uow.Products.GetListOfProducts(filters.CategoryId, filters.FreeShipping, filters.PriceFrom, filters.PriceTo, filters.SerachText);

                return(_mapper.Map <List <Product> >(dbProducts));
            }
        }
예제 #6
0
        public void AddOrderWithItems(Order order)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var orderDB = _mapper.Map <EF.Order>(order);

                uow.Orders.AddOrderWithItems(orderDB);
            }
        }
예제 #7
0
        public List <OrderInfo> GetOrdersByUserId(int userId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var orders = uow.Orders.GetOrdersByUserId(userId);

                return(_mapper.Map <List <OrderInfo> >(orders));
            }
        }
예제 #8
0
        public void DeleteProduct(int productId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                uow.Products.DeleteProduct(productId);

                uow.Commit();
            }
        }
예제 #9
0
 public int updateCartItem(int userId, string cartItemCode, int quantity)
 {
     using (EF.APShopContext context = new EF.APShopContext())
     {
         UnitOfWork     uow      = new UnitOfWork(context);
         EF.CartProduct cartItem = context.CartProduct.Where(p => p.Cart.UserId == userId && p.Code == cartItemCode).SingleOrDefault();
         cartItem.Quantity = quantity;
         uow.Users.updateCartItem(cartItem);
         uow.Commit();
         return(cartItem.Quantity);
     }
 }
예제 #10
0
        public Order GetOrderItems(int orderId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var orderItemsDB = uow.Orders.GetOrderIncludeOrderProductsIncludeProduct(orderId);

                var result = _mapper.Map <Order>(orderItemsDB);
                result.Items = _mapper.Map <List <OrderItem> >(orderItemsDB.OrderProduct);
                return(result);
            }
        }
예제 #11
0
        public User GetUserByUsername(string username)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var dbUser = uow.Users.GetUserByUsername(username);

                if (dbUser == null)
                {
                    throw new ArgumentNullException("User not found");
                }

                return(_mapper.Map <User>(dbUser));
            }
        }
예제 #12
0
        public ProductFull GetFullProduct(int productId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                EF.Product  EfProduct   = uow.Products.GetFullProduct(productId);
                ProductFull productFull = new ProductFull();

                var productDetailEntity = EfProduct.ProductDetails.SingleOrDefault();
                productFull.Details = _mapper.Map <ProductDetails>(productDetailEntity);
                productFull.Product = _mapper.Map <Product>(EfProduct);

                return(productFull);
            }
        }
예제 #13
0
        public int AddProduct(ProductFull fullProduct)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork        uow              = new UnitOfWork(context);
                EF.Product        dbProduct        = _mapper.Map <EF.Product>(fullProduct.Product);
                EF.ProductDetails dbProductDetails = _mapper.Map <EF.ProductDetails>(fullProduct.Details);
                dbProduct.IsActive = true;

                dbProduct.ProductDetails.Add(dbProductDetails);
                uow.Products.AddProduct(dbProduct);

                uow.Commit();

                return(dbProduct.Id);
            }
        }
예제 #14
0
        public User UserLogin(string username, string passwordHash)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                EF.User efUser = uow.Users.GetByUsernameAndPassword(username, passwordHash);
                if (efUser is null)
                {
                    return(null);
                }

                User user = _mapper.Map <User>(efUser);

                return(user);
            }
        }
예제 #15
0
        public static void PostUser(User userDBO)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                EF.User efUser = new EF.User()
                {
                    Username = userDBO.Username,
                    Password = userDBO.Password,
                    Role     = userDBO.Role
                };

                uow.Users.Add(efUser);
                context.SaveChanges();
            }
        }
예제 #16
0
        public IEnumerable <CartItem> GetCartItems(int userId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                List <EF.CartProduct> cartDBContent = context.CartProduct.Where(x => x.Cart.UserId == userId).ToList();

                if (cartDBContent == null)
                {
                    throw new ArgumentNullException("Couldn't find requested resource");
                }
                if (cartDBContent.Count() == 0)
                {
                    //throw new Exception("No products in your cart, add something you like");
                    return(new List <CartItem>());
                }

                List <string> codes = new List <string>();
                foreach (var item in cartDBContent)
                {
                    codes.Add(item.Code);
                }

                List <EF.Product> cartdbProducts = uow.Products.GetProductsByCode(codes).ToList();
                if (cartdbProducts == null || cartdbProducts.Count() == 0)
                {
                    throw new ArgumentNullException("Couldn't find requested resource");
                }


                List <CartItem> cartDTOItems = new List <CartItem>();

                cartDTOItems = _mapper.Map <List <CartItem> >(cartDBContent);

                for (int i = 0; i < cartDTOItems.Count(); i++)
                {
                    cartDTOItems[i].Product = _mapper.Map <Product>(cartdbProducts[i]);
                }
                return(cartDTOItems);
            }
        }
예제 #17
0
        public int Register(User user, DateTime cartDate)
        {
            if (user == null)
            {
                throw new ArgumentNullException("User info not supplied");
            }

            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow     = new UnitOfWork(context);
                EF.User    dboUser = _mapper.Map <EF.User>(user);
                uow.Users.CreateUser(dboUser);

                EF.Cart dbCart = new EF.Cart()
                {
                    DateLastUpdated = cartDate
                };
                dboUser.Cart.Add(dbCart); //virtuelni clan
                uow.Commit();
                return(dboUser.Id);
            }
        }
예제 #18
0
        public List <CartItem> deleteProductFromCart(int userId, string code, DateTime dateTime)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork     uow             = new UnitOfWork(context);
                EF.CartProduct productToDelete = context.CartProduct.Include(c => c.Cart).
                                                 Where(p => p.Cart.UserId == userId && p.Code == code).SingleOrDefault();
                // EF.CartProduct productToDelete = uow.Users.GetById(userId).Cart.SingleOrDefault().CartProduct.Where(p => p.Code == code && p.Cart.UserId ==userId).SingleOrDefault();

                if (productToDelete == null)
                {
                    throw new ArgumentNullException("Couldn't find requested resource");
                }

                productToDelete.Cart.DateLastUpdated = dateTime;
                uow.Users.deleteCartProduct(productToDelete);

                uow.Commit();

                return(GetCartItems(userId).ToList());
            }
        }
예제 #19
0
        public Cart GetCartByUserId(int userId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                EF.Cart efUserCart = uow.Carts.GetByUserId(userId);

                if (efUserCart is null)
                {
                    return(null);
                }

                Cart cart = new Cart()
                {
                    Id              = efUserCart.Id,
                    UserId          = efUserCart.UserId,
                    DateLastUpdated = efUserCart.DateLastUpdated
                };

                return(cart);
            }
        }
예제 #20
0
        public ProductFull Update(int productId, ProductFull product)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var dbProductOld = uow.Products.GetById(productId);

                if (dbProductOld == null)
                {
                    throw new ArgumentNullException("Internal server error");
                }
                dbProductOld.IsActive = false;


                var dbProductDetailForAdd = _mapper.Map <EF.ProductDetails>(product.Details);
                dbProductDetailForAdd.Product = _mapper.Map <EF.Product>(product.Product);

                dbProductDetailForAdd.Product.IsActive = true;
                dbProductDetailForAdd.Product.Code     = dbProductOld.Code;

                uow.Products.AddProductDetails(dbProductDetailForAdd);

                uow.Commit();

                var dtop = _mapper.Map <Product>(dbProductDetailForAdd.Product);

                var dtopd = _mapper.Map <ProductDetails>(dbProductDetailForAdd);

                return(new ProductFull
                {
                    Product = dtop,
                    Details = dtopd
                });
            }
        }