public ElevatorMover(
     Elevator elevator,
     ILogMovementService logger,
     IWaiterService waiterService)
 {
     Elevator       = elevator;
     _logger        = logger;
     _waiterService = waiterService;
 }
Example #2
0
 /// <summary>
 /// Defines the system to get hold of domain services
 /// </summary>
 public ShifterSystem(IShiftService shiftService, IWaiterService waiterService, IShiftTemplateService shiftTemplateService, IShiftTimeSlotService shiftTimeSlotService, IRestaurantService restaurantService, IManagerService managerService, ISettingsService settingsService)
 {
     this.ShiftService         = shiftService;
     this.WaiterService        = waiterService;
     this.ShiftTimeSlotService = shiftTimeSlotService;
     this.ShiftTemplateService = shiftTemplateService;
     this.RestaurantService    = restaurantService;
     this.ManagerService       = managerService;
     this.SettingsService      = settingsService;
 }
Example #3
0
 public ElevatorRequestHandlerFactory(
     ILogMovementService logger,
     IWaiterService waiterService,
     IRequestQueue <ElevatorRequest> requestQueue
     )
 {
     _logger        = logger;
     _waiterService = waiterService;
     _requestQueue  = requestQueue;
 }
     /// <summary>Creates service definition that can be registered with a server</summary>
 #pragma warning disable 0618
     public static ServerServiceDefinition BindService(IWaiterService serviceImpl)
 #pragma warning restore 0618
     {
         return(ServerServiceDefinition.CreateBuilder(__ServiceName)
                .AddMethod(__Method_checkProducts, serviceImpl.checkProducts)
                .AddMethod(__Method_addOrder, serviceImpl.addOrder)
                .AddMethod(__Method_closeOrder, serviceImpl.closeOrder)
                .AddMethod(__Method_cancelOrder, serviceImpl.cancelOrder)
                .AddMethod(__Method_getActiveOrders, serviceImpl.getActiveOrders)
                .AddMethod(__Method_getClosedOrders, serviceImpl.getClosedOrders).Build());
     }
Example #5
0
 public ElevatorSystem(
     IElevatorRequestHandlerFactory requestHandlerFactory,
     IWaiterService waiterService,
     IRequestQueue <ElevatorRequest> queue
     )
 {
     _workers               = new List <Task>();
     _requestsHandler       = new List <ElevatorRequestHandler>();
     _requests              = new List <ElevatorRequest>();
     _requestHandlerFactory = requestHandlerFactory;
     _waiterService         = waiterService;
     _queue = queue;
 }
 public ElevatorSystemWithTestData(
     IElevatorRequestHandlerFactory requestHandlerFactory,
     IWaiterService waiterService,
     IRequestQueue <ElevatorRequest> queue
     ) : base(requestHandlerFactory, waiterService, queue)
 {
     AddElevator(new Elevator {
         Name = "Aufzug 1"
     });
     AddElevator(new Elevator {
         Name = "Aufzug 2"
     });
     AddRequest(new ElevatorRequest {
         FromFloor = 0, ToFloor = 5
     });
     AddRequest(new ElevatorRequest {
         FromFloor = 10, ToFloor = 0
     });
     AddRequest(new ElevatorRequest {
         FromFloor = 5, ToFloor = 0
     });
 }
Example #7
0
 public WaiterController(IWaiterService waiterService)
 {
     this.waiterService = waiterService;
 }
Example #8
0
 public ElevatorSystemHostedService(IElevatorSystem elevatorSystem, IWaiterService waiterService)
 {
     _elevatorSystem = elevatorSystem;
     _waiterService  = waiterService;
 }
 /// <summary>
 /// Method to Instantiate Duplex channel factory for Waiter Service
 /// </summary>
 private void InitializeWaiterChannel()
 {
     try
     {
         this.waiterServiceAddress = new EndpointAddress(new Uri("net.tcp://localhost:4502/WaiterService"));
         this.callbackInstance = new InstanceContext(new OrderNotifitcation());
         this.waiterServiceFactory = new DuplexChannelFactory<IWaiterService>(
             this.callbackInstance,
             new NetTcpBinding(),
             this.waiterServiceAddress);
         this.waiterClient = this.waiterServiceFactory.CreateChannel();
         this.guid = Guid.NewGuid();
         this.waiterClient.RegisterWaiter(this.guid);
         this.errorProvider = new ErrorProvider();
     }
     catch (FaultException<RestaurantService.Contracts.ServiceFaultDetails> ex)
     {
         MessageBox.Show(ex.Message, "FaultException", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     catch (CommunicationException ex)
     {
         ((IClientChannel)waiterClient).Abort();
         waiterClient = null;
         MessageBox.Show(ex.Message, "Communication Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         waiterServiceFactory.Abort();
         System.Environment.Exit(1);
     }
 }
        /// <summary>
        /// Method to Clean up.
        /// </summary>
        private void CleanUp()
        {
            try
            {
                errorProvider = null;
                waiterClient.DeRegisterWaiter(guid);
                ((IClientChannel)waiterClient).Close();
                waiterClient = null;
                waiterServiceFactory.Close();
                waiterServiceFactory = null;
            }
            catch (CommunicationException commProblem)
            {
                Console.WriteLine(commProblem.Message);

                if (waiterServiceFactory != null)
                {
                    waiterServiceFactory.Abort();
                }

                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);

                if (waiterServiceFactory != null)
                {
                    waiterServiceFactory.Abort();
                }

                Console.ReadLine();
            }
            finally
            {
                if (waiterClient != null)
                {
                    ((IClientChannel)waiterClient).Close();
                }

                if (waiterServiceFactory != null)
                {
                    waiterServiceFactory.Abort();
                }
            }
        }