private void CloseConnection()
 {
     _finished = true;
     try
     {
         _stream.Close();
         _connection.Close();
         _waitHandle.Close();
         _client = null;
     }
     catch (Exception e)
     {
         Console.WriteLine(e.StackTrace);
     }
 }
        public bool LogIn(Employee employee, ITransportObserver client)
        {
            var userOk = ((EmployeeDBRepository)_employeeRepository).FindByCredentials(employee.UserName, employee.Password);

            if (!userOk)
            {
                return(false);
            }
            if (_observers.ContainsKey(employee.UserName))
            {
                return(false);
            }
            _observers[employee.UserName] = client;
            return(true);
        }
        public bool LogIn(Employee employee, ITransportObserver client)
        {
            InitializeConnection();
            var udto = DTOUtils.GetEmployeeDto(employee);

            SendRequest(new LoginRequest(udto));
            var response = ReadResponse();

            if (response is OkResponse)
            {
                _client = client;
                return(true);
            }
            CloseConnection();
            return(false);
        }