コード例 #1
0
        public async Task SendMessageAsync(ErrorResponse msg)
        {
            await _networkCommunication.SendShortAsync((short)msg.ErrorId);

            await _networkCommunication.SendStringAsync(msg.Message);
        }
コード例 #2
0
        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}");
            }
        }