Exemplo n.º 1
0
        internal static void GetProductTypes(ProductTypeRepository productTypeRepository)
        {
            try
            {
                conn.Open();
                productTypeRepository.Clear();

                SqlCommand cmd = new SqlCommand("SP_GET_ALL_PRODUCTS", conn);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                SqlDataReader rdr = cmd.ExecuteReader();

                if (rdr.HasRows)
                {
                    while (rdr.Read())
                    {
                        productTypeRepository.CreateProduct(Convert.ToInt32(rdr["PRODUCT_ID"]), Convert.ToDouble(rdr["PRICE"]), rdr["DESCRIPTION"].ToString(), Convert.ToInt32(rdr["AMOUNT"]));
                    }
                }
                rdr.Close();
            }
            catch (SqlException e)
            {
                UI.WriteL(e.Message.ToString());
                UI.Wait();
            }
            finally
            {
                conn.Close();
            }
        }
Exemplo n.º 2
0
 public void Register(int orderId, ProductTypeRepository repoPr)
 {
     for (int i = 0; i < listOfOrders[orderId].ListOfOrderLines.Count; i++)
     {
         int quantityToRemoveFromStock = listOfOrders[orderId].ListOfOrderLines[i].Quantity;
         repoPr.SubtractToAmount(quantityToRemoveFromStock, listOfOrders[orderId].ListOfOrderLines[i].Product.Id);
     }
     listOfOrders[orderId].Registered = true;
 }
Exemplo n.º 3
0
        public string BuildEmailReadyToPackOrder(Order ord, ProductTypeRepository repoPr)
        {
            string text = "Id:" + ord.Id + "\nProducts:";

            for (int i = 0; i < ord.ListOfOrderLines.Count; i++)
            {
                text = text + "\n" + ord.ListOfOrderLines[i].Product.Id + " - " + repoPr.GetProductTypes()[ord.ListOfOrderLines[i].Product.Id].Description + " - " + ord.ListOfOrderLines[i].Quantity;
            }
            return(text);
        }
Exemplo n.º 4
0
        public List <Order> CheckOrders(DateTime date, ProductTypeRepository repoPr)
        {
            List <Order> ordersOfThisDate = new List <Order>();

            foreach (Order ord in listOfOrders.Values)
            {
                if (date.ToString("yyyy-MM-dd") == ord.Date.ToString("yyyy-MM-dd"))
                {
                    if (repoPr.CheckAmountOfProductsInOrder(ord) == true)
                    {
                        ordersOfThisDate.Add(ord);
                    }
                    else
                    {
                        string email = BuildEmail(ord, repoPr);
                    }
                }
            }

            return(ordersOfThisDate);
        }
Exemplo n.º 5
0
        public Order InsertOrder(Customer customer, DateTime date, DateTime deliveryDate, int orderId, List <int> quantity, List <ProductType> productTypes, bool registered, ProductTypeRepository repoPr)
        {
            Order order = new Order(orderId, date, deliveryDate, productTypes, quantity, customer);

            order.Registered = registered;
            listOfOrders.Add(orderId, order);
            return(order);
        }
Exemplo n.º 6
0
        public Order InsertOrder(int customerId, DateTime date, DateTime deliveryDate, int orderId, List <int> quantity, List <int> productTypeId, ProductTypeRepository repoPr)
        {
            Order order = new Order(orderId, date, deliveryDate, productTypeId, quantity, customerId);

            listOfOrders.Add(orderId, order);
            return(order);
        }
Exemplo n.º 7
0
        internal static void GetOrders(OrderRepository orderRepository, CustomerRepository customerRepository, ProductTypeRepository productTypeRepository)
        {
            List <Order> listOfOrders = new List <Order>();

            try
            {
                conn.Open();
                orderRepository.Clear();
                SqlCommand    cmd = new SqlCommand("SP_GET_ALL_ORDERS", conn);
                SqlDataReader rdr = cmd.ExecuteReader();

                if (rdr.HasRows)
                {
                    while (rdr.Read())
                    {
                        Customer customerOfThisOrder = customerRepository.Load(Convert.ToInt32(rdr["CUSTOMER_ID"]));
                        Order    order = new Order(Convert.ToInt32(rdr["ORDER_ID"]), Convert.ToDateTime(rdr["DATE"]), Convert.ToDateTime(rdr["DELIVERY_DATE"]), customerOfThisOrder);
                        order.Registered = Convert.ToBoolean(rdr["Registered"]);
                        listOfOrders.Add(order);
                    }
                }

                rdr.Close();

                foreach (Order ord in listOfOrders)
                {
                    cmd             = new SqlCommand("SP_GET_ORDER_LINE_BY_ORDER_ID", conn);
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@ORDER_ID", ord.Id));

                    List <int>         listOfOrderLinesQuantity = new List <int>();
                    List <ProductType> listOfOrderLinesProducts = new List <ProductType>();

                    rdr = cmd.ExecuteReader();

                    if (rdr.HasRows)
                    {
                        while (rdr.Read())
                        {
                            listOfOrderLinesProducts.Add(productTypeRepository.Load(Convert.ToInt32(rdr["PRODUCT_ID"])));
                            listOfOrderLinesQuantity.Add(Convert.ToInt32(rdr["QUANTITY"]));
                        }
                        rdr.Close();
                        cmd.Dispose();
                    }

                    Order newOrder = orderRepository.InsertOrder(ord.Customer, ord.Date, ord.DeliveryDate, ord.Id, listOfOrderLinesQuantity, listOfOrderLinesProducts, ord.Registered, productTypeRepository);
                    ord.Customer.OrderRepository.InsertOrder(ord.Customer, ord.Date, ord.DeliveryDate, ord.Id, listOfOrderLinesQuantity, listOfOrderLinesProducts, ord.Registered, productTypeRepository);
                }
            }
            catch (SqlException e)
            {
                UI.WriteL(e.Message.ToString());
                UI.Wait();
            }
            finally
            {
                conn.Close();
            }
        }