public async Task SendMessageAsync(ErrorResponse msg) { await _networkCommunication.SendShortAsync((short)msg.ErrorId); await _networkCommunication.SendStringAsync(msg.Message); }
public async Task SendMessageAsync(Message msg) { await _networkCommunication.SendBytesAsync(new[] { (byte)msg.Type }); await _networkCommunication.SendShortAsync((short)msg.Id); switch (msg) { // Error case ErrorResponse errorResponse: var errorResponseHandler = new ErrorResponseHandler(_networkCommunication); await errorResponseHandler.SendMessageAsync(errorResponse); break; // Login case LoginRequest loginRequest: var loginRequestHandler = new LoginRequestHandler(_networkCommunication); await loginRequestHandler.SendMessageAsync(loginRequest); break; case LoginResponse loginResponse: var loginResponseHandler = new LoginResponseHandler(_networkCommunication); await loginResponseHandler.SendMessageAsync(loginResponse); break; // Create User case CreateUserRequest createUserRequest: var createUserRequestHandler = new CreateUserRequestHandler(_networkCommunication); await createUserRequestHandler.SendMessageAsync(createUserRequest); break; case CreateUserResponse createUserResponse: var createUserResponseHandler = new CreateUserResponseHandler(_networkCommunication); await createUserResponseHandler.SendMessageAsync(createUserResponse); break; // Create photo case CreatePhotoRequest createPhotoRequest: var createPhotoRequestHandler = new CreatePhotoRequestHandler( _networkCommunication, _fileCommunication ); await createPhotoRequestHandler.SendMessageAsync(createPhotoRequest); break; case CreatePhotoResponse createPhotoResponse: var createPhotoResponseHandler = new CreatePhotoResponseHandler(); await createPhotoResponseHandler.SendMessageAsync(createPhotoResponse); break; // Photo list case PhotoListRequest photoListRequest: var photoListRequestHandler = new PhotoListRequestHandler(_networkCommunication); await photoListRequestHandler.SendMessageAsync(photoListRequest); break; case PhotoListResponse photoListResponse: var photoListResponseHandler = new PhotoListResponseHandler( _networkCommunication, _fileCommunication ); await photoListResponseHandler.SendMessageAsync(photoListResponse); break; // User list case UserListRequest userListRequest: var userListRequestHandler = new UserListRequestHandler(); await userListRequestHandler.SendMessageAsync(userListRequest); break; case UserListResponse userListResponse: var userListResponseHandler = new UserListResponseHandler( _networkCommunication ); await userListResponseHandler.SendMessageAsync(userListResponse); break; // Comment photo case CommentPhotoRequest commentPhotoRequest: var commentPhotoRequestHandler = new CommentPhotoRequestHandler(_networkCommunication); await commentPhotoRequestHandler.SendMessageAsync(commentPhotoRequest); break; case CommentPhotoResponse commentPhotoResponse: var commentPhotoResponseHandler = new CommentPhotoResponseHandler( _networkCommunication ); await commentPhotoResponseHandler.SendMessageAsync(commentPhotoResponse); break; // Comment List case CommentListRequest commentListRequest: var commentListRequestHandler = new CommentListRequestHandler(_networkCommunication); await commentListRequestHandler.SendMessageAsync(commentListRequest); break; case CommentListResponse commentListResponse: var commentListResponseHandler = new CommentListResponseHandler( _networkCommunication ); await commentListResponseHandler.SendMessageAsync(commentListResponse); break; // Logout case LogoutRequest logoutRequest: var logoutRequestHandler = new LogoutRequestHandler(); await logoutRequestHandler.SendMessageAsync(logoutRequest); break; case LogoutResponse logoutResponse: var logoutResponseHandler = new LogoutResponseHandler(); await logoutResponseHandler.SendMessageAsync(logoutResponse); break; default: // TODO Create a custom exception throw new Exception($"Message not recognized ID={msg.Id}, type={msg.Type}"); } }