private static async Task TestHandler() { var config = ClientConfiguration.LocalhostSilo(); config.AddSimpleMessageStreamProvider(StreamConstants.ProviderName); var host = new OrleansClientInitializer(config); var client = await OrleansClient.Initialize(host); var container = new Container(); container.RegisterClientHandlerFactory(); var handlerFactory = container.GetInstance <ClientHandlerFactory>(); using (var connection = await client.Connect(Guid.NewGuid())) { var handler = handlerFactory.Create(connection); handler.Events.Subscribe(Write); var meta = new Metadata(); var loginResponse = await handler.Handle(new LoginCommand(), meta); Write(loginResponse); meta = new Metadata { AccessToken = loginResponse.AccessToken }; var joinRoom = new JoinRoomCommand { RoomId = "conreign" }; await handler.Handle(joinRoom, meta); var updatePlayer = new UpdatePlayerOptionsCommand { RoomId = "conreign", Options = new PlayerOptionsData { Nickname = "smolyakoff", Color = "#010101" } }; await handler.Handle(updatePlayer, meta); var write = new SendMessageCommand { RoomId = "conreign", Text = "Hello!" }; await handler.Handle(write, meta); var getState = new GetRoomStateCommand { RoomId = "conreign" }; var state = await handler.Handle(getState, meta); Write(state); } }
public Task UpdateOptions(PlayerOptionsData options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } var command = new UpdatePlayerOptionsCommand { RoomId = _roomId, Options = options }; return(_context.Send(command)); }