示例#1
0
        /// <summary>
        /// Returns a specific amount of uniqueProduct of a specific product
        /// </summary>
        /// <param name="product"></param>
        /// <param name="amount"></param>
        /// <returns>IEnumerable<UniqueProduct> uniqueProduct</returns>
        public IEnumerable <UniqueProduct> FindUniqueProductsOnStock(Product product, int amount)
        {
            List <UniqueProduct> uniqueProducts = new List <UniqueProduct>();
            int productId = product._id;

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                using (SqlCommand cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "select TOP " + amount + " * from UNIQUEPRODUCT up, PRODUCT p where up.productId = p.id " +
                                      "and p.id = @productId and ((SELECT COUNT(*) FROM OrderLineList WHERE uniqueProductId = up.id) = 0)";
                    cmd.Parameters.AddWithValue("productId", productId);

                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        UniqueProduct uniqueProduct = new UniqueProduct
                        {
                            _id       = reader.GetInt32(reader.GetOrdinal("id")),
                            _serialNo = reader.GetString(reader.GetOrdinal("serialNo")),
                            _warranty = reader.GetString(reader.GetOrdinal("warranty")),
                            _product  = _dbProduct.FindById(reader.GetInt32(reader.GetOrdinal("productId")))
                        };

                        if (uniqueProduct is UniqueProduct)
                        {
                            uniqueProducts.Add(uniqueProduct);
                        }
                    }
                }
            }
            return(uniqueProducts);
        }
        /// <summary>
        /// Returns a list of products on a specific OrderLine
        /// </summary>
        /// <param name="orderLineId"></param>
        /// <returns>List<UniqueProduct> productList</returns>
        public List <UniqueProduct> GetAllProductsByOlId(int orderLineId)
        {
            List <UniqueProduct> productList = new List <UniqueProduct>();

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                using (SqlCommand cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "select uProduct.id, uProduct.productId, uProduct.serialNo, " +
                                      "uProduct.warranty from OrderLineList oll, UniqueProduct uProduct " +
                                      "where uProduct.Id = oll.UniqueProductId AND oll.orderLineId = @orderLineId";
                    cmd.Parameters.AddWithValue("orderLineId", orderLineId);
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        UniqueProduct uniqueProduct = new UniqueProduct
                        {
                            _id       = reader.GetInt32(reader.GetOrdinal("id")),
                            _product  = _dbProduct.FindById(reader.GetInt32(reader.GetOrdinal("productId"))),
                            _serialNo = reader.GetString(reader.GetOrdinal("serialNo")),
                            _warranty = reader.GetString(reader.GetOrdinal("warranty"))
                        };
                        productList.Add(uniqueProduct);
                    }
                }
            }
            return(productList);
        }
示例#3
0
        /// <summary>
        /// Returns a uniqueProduct based on its serialno
        /// </summary>
        /// <param name="serialNo"></param>
        /// <returns>UiqueProduct uniqueProduct</returns>
        public UniqueProduct Read(string serialNo)
        {
            UniqueProduct uniqueProduct = null;

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                using (SqlCommand cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "SELECT * FROM UniqueProduct WHERE serialNo = @serialNo";
                    cmd.Parameters.AddWithValue("serialNo", serialNo);
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        uniqueProduct = new UniqueProduct
                        {
                            _id       = reader.GetInt32(reader.GetOrdinal("id")),
                            _serialNo = reader.GetString(reader.GetOrdinal("serialNo")),
                            _warranty = reader.GetString(reader.GetOrdinal("warranty")),
                            _product  = _dbProduct.FindById(reader.GetInt32(reader.GetOrdinal("productId")))
                        };
                    }
                }
            }
            return(uniqueProduct);
        }
示例#4
0
        /// <summary>
        /// Returns all uniqueProducts in database
        /// </summary>
        /// <returns>IEnumerable<UniqueProduct> uniqueProduct</returns>
        public IEnumerable <UniqueProduct> GetAll()
        {
            List <UniqueProduct> uniqueProducts = new List <UniqueProduct>();

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                using (SqlCommand cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "select * from UniqueProduct";
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        UniqueProduct uniqueProduct = new UniqueProduct
                        {
                            _id       = reader.GetInt32(reader.GetOrdinal("id")),
                            _serialNo = reader.GetString(reader.GetOrdinal("serialNo")),
                            _warranty = reader.GetString(reader.GetOrdinal("warranty")),
                            _product  = _dbProduct.FindById(reader.GetInt32(reader.GetOrdinal("productId")))
                        };

                        if (uniqueProduct is UniqueProduct)
                        {
                            uniqueProducts.Add(uniqueProduct);
                        }
                    }
                }
            }
            return(uniqueProducts);
        }
示例#5
0
 /// <summary>
 /// Deletes an uniqueProduct in database based un input parameters
 /// </summary>
 /// <param name="uniqueProduct"></param>
 public void Delete(UniqueProduct uniqueProduct)
 {
     using (SqlConnection connection = new SqlConnection(_connectionString))
     {
         connection.Open();
         using (SqlCommand cmd = connection.CreateCommand())
         {
             cmd.CommandText = "DELETE FROM UniqueProduct where serialNo = @serialNo";
             cmd.Parameters.AddWithValue("serialNo", uniqueProduct._serialNo);
             cmd.ExecuteNonQuery();
         }
     }
 }
示例#6
0
 /// <summary>
 /// Updates a uniqueProduct in the database based on inputparameters
 /// </summary>
 /// <param name="uniqueProduct"></param>
 public void Update(UniqueProduct uniqueProduct)
 {
     using (SqlConnection connection = new SqlConnection(_connectionString))
     {
         connection.Open();
         using (SqlCommand cmd = connection.CreateCommand())
         {
             cmd.CommandText = "UPDATE UniqueProduct " +
                               "set warranty = @warranty, productId = @productId " +
                               "where serialNo = @serialNo";
             cmd.Parameters.AddWithValue("serialNo", uniqueProduct._serialNo);
             cmd.Parameters.AddWithValue("warranty", uniqueProduct._warranty);
             cmd.Parameters.AddWithValue("productId", uniqueProduct._product._id);
             cmd.ExecuteNonQuery();
         }
     }
 }
示例#7
0
        /// <summary>
        /// Creates an instance of a uniqueProduct in the database
        /// </summary>
        /// <param name="uniqueProduct"></param>
        /// <returns>int id</returns>
        public int Create(UniqueProduct uniqueProduct)
        {
            int id;

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();

                using (SqlCommand cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "INSERT INTO UniqueProduct (serialNo, warranty, productId) " +
                                      "VALUES (@serialNo, @warranty, @productId); " +
                                      "SELECT SCOPE_IDENTITY()";
                    cmd.Parameters.AddWithValue("serialNo", uniqueProduct._serialNo);
                    cmd.Parameters.AddWithValue("warranty", uniqueProduct._warranty);
                    cmd.Parameters.AddWithValue("productId", uniqueProduct._product._id);

                    id = Convert.ToInt32(cmd.ExecuteScalar());
                }
            }
            return(id);
        }
示例#8
0
        public void AddProductToOrder()
        {
            // arrange
            OrderController   oCtrl = new OrderController();
            ProductController pCtrl = new ProductController();

            int     amount      = 1;
            Product testProduct = new Product
            {
                _description = "Testprodukt",
                _name        = "Testprodukt",
                _price       = 13,
                _categoryId  = 2,
                _supplierId  = 2
            };

            // act
            int productId = pCtrl.Create(testProduct);

            testProduct._id = productId;

            UniqueProduct testUniqueProduct = new UniqueProduct
            {
                _product  = testProduct,
                _serialNo = RandomString(9),
                _warranty = "forever"
            };

            pCtrl.CreateUniqueProduct(testUniqueProduct);

            int orderId = oCtrl.CreateOrder();

            oCtrl.AddProduct(orderId, productId, amount);

            // assert
            Assert.IsTrue(orderId != 0);
        }
 /// <summary>
 /// This method will create a new uniqueproduct.
 /// </summary>
 /// <param name="uniqueProduct"></param>
 /// This is the uniquepriduct that will be created.
 /// <returns></returns>
 /// It will return the created uniqueproduct.
 public int CreateUniqueProduct(UniqueProduct uniqueProduct)
 {
     return(_dbUniqueProduct.Create(uniqueProduct));
 }