Beispiel #1
0
        public Worker(NetworkStream networkStream, List <Employee> loggedUsers)
        {
            _networkStream = networkStream;
            _formatter     = new BinaryFormatter();
            _controller    = new BLLController();
            _loggedUsers   = loggedUsers;

            ThreadStart ts     = Handle;
            var         thread = new Thread(ts);

            thread.Start();
        }
Beispiel #2
0
        private void Handle()
        {
            try
            {
                var operation = 0;
                while (operation != (int)Operation.End)
                {
                    var transferObject = _formatter.Deserialize(_networkStream) as TransferObject;
                    if (transferObject == null)
                    {
                        continue;
                    }
                    switch (transferObject.Operation)
                    {
                    case Operation.GetEmployeesNames:
                        transferObject.TransferObj = BLLController.GetEmployeesNames();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.Login:
                        var currentUser = transferObject.TransferObj as Employee;
                        if (_loggedUsers.Any(a => a.Username == currentUser.Username))
                        {
                            transferObject.TransferObj = -1;
                            _formatter.Serialize(_networkStream, transferObject);
                            continue;
                        }
                        transferObject.TransferObj =
                            _controller.Login(currentUser);
                        _formatter.Serialize(_networkStream, transferObject);
                        _loggedUsers.Add(currentUser);
                        break;

                    case Operation.FindEmployee:
                        transferObject.TransferObj =
                            BLLController.FindEmployee(transferObject.TransferObj as string);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetNewID:
                        transferObject.TransferObj =
                            BLLController.GetNewId(transferObject.TransferObj as IGenericObject);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetAllOwners:
                        transferObject.TransferObj = BLLController.GetAllOwners();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetAutoTypes:
                        transferObject.TransferObj = BLLController.GetAllAutoTypes();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.Input:
                        transferObject.TransferObj =
                            BLLController.Input(transferObject.TransferObj as IGenericObject);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.FindService:
                        transferObject.TransferObj =
                            BLLController.FindServices(transferObject.TransferObj as string);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.UpdateService:
                        transferObject.TransferObj =
                            BLLController.UpdateService(transferObject.TransferObj as Service);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.UpdateAuto:
                        transferObject.TransferObj = BLLController.UpdateAuto(transferObject.TransferObj as Auto);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.FindAuto:
                        transferObject.TransferObj =
                            BLLController.FindAutos(transferObject.TransferObj as string);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.DeleteAuto:
                        transferObject.TransferObj =
                            BLLController.DeleteAuto(transferObject.TransferObj as Auto);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetAllEmployees:
                        transferObject.TransferObj = BLLController.GetAllEmployees();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.FindInvoice:
                        transferObject.TransferObj =
                            BLLController.FindInvoices(transferObject.TransferObj as string);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetAllServices:
                        transferObject.TransferObj = BLLController.GetAllServices();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetAllAutos:
                        transferObject.TransferObj = BLLController.GetAllAutos();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.GetAllInvoiceItems:
                        transferObject.TransferObj = BLLController.GetAllInvoiceItems();
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.FindInvoiceItems:
                        transferObject.TransferObj =
                            BLLController.FindInvoiceItems(transferObject.TransferObj as string);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.UpdateInvoice:
                        transferObject.TransferObj = BLLController.UpdateInvoice(transferObject.TransferObj as Invoice);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.DeleteInvoice:
                        transferObject.TransferObj = BLLController.DeleteInvoice(transferObject.TransferObj as Invoice);
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.Logout:
                        var user = transferObject.TransferObj as Employee;
                        _loggedUsers.RemoveAll(a => a.Username == user.Username);
                        transferObject.TransferObj = true;
                        _formatter.Serialize(_networkStream, transferObject);
                        break;

                    case Operation.End:
                        operation = 1;
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                // ignored
            }
        }