public void CreateOrder(string clientName, DateTime orderDate, bool delivery, List <string> dishesNames, string street, string number, string postalCode, DateTime deliveryEndTime)
        {
            lock (criticalSection)
            {
                Client         client          = clientManager.GetClientByName(clientName);
                Address        deliveryAddress = new Address(street, number, postalCode);
                List <DishDTG> dishes          = new List <DishDTG>();

                foreach (string dishName in dishesNames)
                {
                    dishes.Add(MapperToDTG.DishDTG(menuManager.GetDishByName(dishName)));
                }

                if (delivery)
                {
                    deliveryManager.CreateOrder(currentOrderIndex, client, orderDate, dishes, delivery, deliveryAddress, deliveryEndTime);
                }
                else
                {
                    orderManager.CreateOrder(currentOrderIndex, client, orderDate, dishes, delivery, deliveryAddress, deliveryEndTime);
                }
                currentOrderIndex++;
            }
        }
 public OrderDTG GetDeliveryById(int Id)//done
 {
     return(MapperToDTG.OrderDTG(deliveryManager.GetDeliveryById(Id)));
 }
 public List <ClientDTG> GetAllClients()    //done
 {
     return(MapperToDTG.ClientDTGs(clientManager.Clients));
 }
 public OrderDTG GetOrderById(int Id)//done
 {
     return(MapperToDTG.OrderDTG(orderManager.GetActiveOrderById(Id)));
 }
 public List <OrderDTG> GetCompletedOrders()   //done
 {
     return(MapperToDTG.OrderDTGs(orderManager.CompletedOrders));
 }
 public DishDTG GetDishById(int Id)
 {
     return(MapperToDTG.DishDTG(menuManager.GetDishById(Id)));
 }
 public List <OrderDTG> GetCompletedDeliveries() //done
 {
     return(MapperToDTG.OrderDTGs(deliveryManager.DeliveryCompleted));
 }
 public List <OrderDTG> GetActiveDeliveries() //done
 {
     return(MapperToDTG.OrderDTGs(deliveryManager.DeliveryOrders));
 }
 public List <OrderDTG> GetActiveOrders()  //done
 {
     return(MapperToDTG.OrderDTGs(orderManager.ActiveOrders));
 }
 public List <AdvertisementDTG> GetAdverts()
 {
     return(MapperToDTG.AdvertisementDTGs(adverts));
 }
 public List <DishDTG> GetMenu()    //done
 {
     return(MapperToDTG.DishDTGs(menuManager.GetMenu()));
 }