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(); } }
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; }
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); }
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); }
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); }
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); }
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(); } }