//Vue complexe utilisant le modèle OrderDetailsViewModel //Permet d'afficher le nom du restaurant de la commande, le numéro de la commande, les plats choisis (bug, 1 seul plat est affiché), //la quantité par plats, le prix unitaire d'un plat, l'heure de livraison... public ActionResult OrderDetails() { List <OrderDetailsViewModel> listeOrderDetails = new List <OrderDetailsViewModel>(); OrderDetailsViewModel orderDetails = new OrderDetailsViewModel(); int idCustomer = HttpContext.Session.GetInt32("IdCustomer").GetValueOrDefault(); int idOrder = HttpContext.Session.GetInt32("IdOrder").GetValueOrDefault(); int idRestaurant = HttpContext.Session.GetInt32("IdRestaurant").GetValueOrDefault(); int idDeliveryTime = HttpContext.Session.GetInt32("Id_Delivery_time").GetValueOrDefault(); OrderManager.UpdateOrderDeliveryTime(idOrder, idDeliveryTime); List <DTO.Order_Dish> listeOrder_Dishes = Order_DishManager.GetAllOrder_Dish(idOrder); DTO.Customer customer = CustomerManager.GetCustomer(idCustomer); DTO.Order order = OrderManager.GetOrder(idOrder); DTO.Restaurant restaurant = RestaurantManager.GetRestaurant(idRestaurant); orderDetails.Customers = customer; orderDetails.Orders = order; orderDetails.Restaurants = restaurant; orderDetails.Cities = CityManager.GetCity(customer.FK_idCity); orderDetails.Delivery_Times = Delivery_TimeManager.GetDelivery_Time(idDeliveryTime); foreach (DTO.Order_Dish od in listeOrder_Dishes) { orderDetails.Order_Dishes = od; orderDetails.Dishes = DishManager.GetDish(od.FK_idDish); } listeOrderDetails.Add(orderDetails); return(View(listeOrderDetails)); }
//Lorsque le client a choisi son plat et la quantité, l'order_dish est crée et retourne la vue liste des Order_dish public ActionResult CreateOrder_Dish() { int quantite = HttpContext.Session.GetInt32("Quantite").GetValueOrDefault(); int idDish = HttpContext.Session.GetInt32("IdDish").GetValueOrDefault(); int idOrder = HttpContext.Session.GetInt32("IdOrder").GetValueOrDefault(); int priceDish = HttpContext.Session.GetInt32("DishPrice").GetValueOrDefault(); int total = quantite * priceDish; DTO.Order_Dish newOrder_Dish = new DTO.Order_Dish { FK_idDish = idDish, FK_idOrder = idOrder, Quantity = quantite, Total = total }; Order_DishManager.AddOrder_Dish(newOrder_Dish); return(RedirectToAction("ListOrder_Dish", "Order_Dish")); }
//Vue affichant le "panier", le client arrive sur cette page et choisi d'ajouter un plat, qui va être affiché avec la quantité qu'il a choisi //Affiche ensuite le total de la commande actuelle //Il peut ajouter autant de plats qu'il veut public ActionResult ListOrder_Dish() { int idOrder = HttpContext.Session.GetInt32("IdOrder").GetValueOrDefault(); List <DTO.Order_Dish> listeOrderDish = Order_DishManager.GetAllOrder_Dish(idOrder); List <DishOrderDishViewModel> dishOrderDish = new List <DishOrderDishViewModel>(); foreach (DTO.Order_Dish o in listeOrderDish) { DishOrderDishViewModel dishOrderDishViewModel = new DishOrderDishViewModel(); dishOrderDishViewModel.Order_Dishes = o; dishOrderDishViewModel.Dishes = DishManager.GetDish(o.FK_idDish); dishOrderDish.Add(dishOrderDishViewModel); } return(View(dishOrderDish)); }
//Si un client a choisi un plat et ne le veut plus, il peut le supprimer pour qu'il ne soit pas sur sa commande //Redirige vers la listeOrder_Dish public ActionResult DeleteOrder_Dish(int idOrder_Dish) { Order_DishManager.DeleteOrder_Dish(idOrder_Dish); return(RedirectToAction("ListOrder_Dish", "Order_Dish")); }
public static void Suite(int idCustomer) { var restaurantDbManager = new RestaurantManager(Configuration); var dishDbManager = new DishManager(Configuration); var delivery_TimeDbManager = new Delivery_TimeManager(Configuration); var orderDbManager = new OrderManager(Configuration); var customerDbManager = new CustomerManager(Configuration); var deliveryDbManager = new DeliveryManager(Configuration); var orderDishDbManager = new Order_DishManager(Configuration); var deliverymanDbMangager = new DeliverymanManager(Configuration); Console.WriteLine("[1] New order, [2] Cancel order"); string orderChoice = Console.ReadLine(); if (orderChoice == "1") { Console.WriteLine("Restaurants list : "); var restaurants = restaurantDbManager.GetAllRestaurants(); foreach (var restaurant in restaurants) { Console.WriteLine(restaurant.ToString()); } Console.WriteLine("Choose the restaurant"); string idRestaurant = Console.ReadLine(); var dishes = dishDbManager.GetAllDishes(int.Parse(idRestaurant)); foreach (var dish in dishes) { Console.WriteLine(dish.ToString()); } Console.WriteLine("Choose your dish"); string dishChoice = Console.ReadLine(); int dishPrice = dishDbManager.GetDishPrice(int.Parse(dishChoice)); Console.WriteLine("How many times do you want this dish ?"); string dishQuantity = Console.ReadLine(); int totalPrice = dishPrice * int.Parse(dishQuantity); var newOrder = orderDbManager.AddOrder(new Order { Status = "In procedure", FK_idCustomer = idCustomer }); orderDishDbManager.AddOrder_Dish(new Order_Dish { Quantity = dishQuantity, FK_idDish = int.Parse(dishChoice), FK_idOrder = newOrder.IdOrder }); //Sans plusieurs ordres, ça fonctionne /*while (dishChoice != "0") * { * Console.WriteLine("Would you like something else ? If your order is done, insert [0]"); * dishChoice = Console.ReadLine(); * dishPrice = dishDbManager.GetDishPrice(int.Parse(dishChoice)); * * if (dishChoice != "0") * { * Console.WriteLine("How many times do you want this dish ?"); * dishQuantity = Console.ReadLine(); * totalPrice += dishPrice * int.Parse(dishQuantity); * } * * //Bug ici à corriger * orderDishDbManager.AddOrder_Dish(new Order_Dish { Quantity = dishQuantity, FK_idDish = int.Parse(dishChoice), FK_idOrder = newOrder.IdOrder}); * }*/ Console.WriteLine("The total of your command is : CHF " + totalPrice + ".-"); Console.WriteLine("When do you want your order to be delivered ? Choose the time with the ID"); var delivery_times = delivery_TimeDbManager.GetAllDelivery_Time(); foreach (var delivery_time in delivery_times) { Console.WriteLine(delivery_time.ToString()); } string deliveryTimeChoice = Console.ReadLine(); Console.WriteLine("Do you validate this order ? Yes [Y], No [N]"); string validationChoice = Console.ReadLine(); if (validationChoice == "Y") { Console.WriteLine("Thank you for ordering with Liam & Mathieu Food Delivery !"); Console.WriteLine("Your order will be there at " + delivery_TimeDbManager.GetDelivery_Time(int.Parse(deliveryTimeChoice))); int idCityFromRestaurant = restaurantDbManager.GetidCityFromRestaurant(int.Parse(idRestaurant)); var deliverymans = deliverymanDbMangager.GetAllDeliveryman(idCityFromRestaurant); foreach (var deliveryman in deliverymans) { //if(deliveryman.FK_idDelivery<5 && deliveryman.) } deliveryDbManager.AddDelivery(new Delivery { FK_idOrder = newOrder.IdOrder, FK_idRestaurant = int.Parse(idRestaurant), FK_idDelivery_Time = int.Parse(deliveryTimeChoice) }); } else { Console.WriteLine("You canceled the order. See you soon !"); } } else { Console.WriteLine("Here is the list of your orders : "); var orders = orderDbManager.GetAllOrdersForOneCustomer(idCustomer); foreach (var order in orders) { Console.WriteLine(order.ToString()); } Console.WriteLine("Choose the order you want to delete with the id"); string orderDelete = Console.ReadLine(); var code = customerDbManager.Code(idCustomer) + orderDelete; Console.WriteLine("Here is your cancellation code for the chosen order :" + ' ' + code); Console.WriteLine("Insert you cancellation code :"); string codeInserted = Console.ReadLine(); while (codeInserted != code) { Console.WriteLine("Cancellation code wrong. Try again."); codeInserted = Console.ReadLine(); } Console.WriteLine("Are you sure you want to cancel this order ? Yes [Y], No [N]"); string choice = Console.ReadLine(); if (choice == "Y") { //Change status order Console.WriteLine("Your order has been successfully cancelled !"); } Console.WriteLine("Your order has not been cancelled"); } }