private void HandleComplete() { try { _currentClientRequest = Protocol.ClientMessage.Complete; _logger.WriteEntry(ToString()); CloseConnection(); } catch (Exception e) { _log.Error(String.Format("ERROR in HandleComplete(): {0}", e.Message), e); throw; } }
public void HandleClient() { try { while (_keepConnectionOpen) { string messageFromClient = IoHelper.ReceiveMessage(_clientSocket); _xmlDoc.LoadXml(messageFromClient); Protocol.ClientMessage messageType = Protocol.GetClientMessageType(_xmlDoc); switch (messageType) { case Protocol.ClientMessage.ReqSession: HandleSessionRequest(); break; case Protocol.ClientMessage.Complete: HandleComplete(); break; case Protocol.ClientMessage.CategoryListRequest: HandleCategoryListRequest(); break; case Protocol.ClientMessage.ImageListRequest: HandleImageListRequest(); break; case Protocol.ClientMessage.GetImage: HandleGetImage(); break; case Protocol.ClientMessage.Cancel: HandleCancel(); break; default: HandleClientProtocolError(); break; } } } catch (Exception e) { _log.Error("ClientDialog ERROR", e); HandleClientProtocolError(); } }
private void HandleCancel() { try { _currentClientRequest = Protocol.ClientMessage.Cancel; _logger.WriteEntry(ToString()); // reset activity to its initial state TODO } catch (Exception e) { _log.Error(String.Format("ERROR in HandleCancel(): {0}", e.Message), e); throw; } }
private void HandleCategoryListRequest() { try { _currentClientRequest = Protocol.ClientMessage.CategoryListRequest; _logger.WriteEntry(ToString()); var response = GetServerResponse(Protocol.ServerMessage.CategoryList); IoHelper.SendMessage(_clientSocket, response); } catch (Exception e) { _log.Error(String.Format("ERROR in HandleCategoryListRequest(): {0}", e.Message), e); throw; } }
private void HandleGetImage() { try { _currentClientRequest = Protocol.ClientMessage.GetImage; _logger.WriteEntry(ToString()); int imageIndex = Protocol.ParseImageId(_xmlDoc); var image = _dataSource.GetImage(imageIndex); var response = GetServerResponse(Protocol.ServerMessage.ImageBegin, imageIndex, image.Length); IoHelper.SendImage(_clientSocket, response, image); } catch (Exception e) { _logger.WriteEntry(String.Format("ERROR in HandleGetImage(): {0}", e.Message)); _logger.WriteEntry(e.StackTrace); throw; } }