public void TestStaticRoomLifecycleAsyncCallback() { const string roomName = "Room Lifecycle {0}"; const string roomDescription = "Description of the room lifecycle {0}"; TestStaticCreateRoomAsyncCallback( roomId => TestStaticPutRoomAsyncCallback( roomId, roomId => TestStaticGetRoomAsyncCallback( roomId, TestStaticDeleteRoomAsyncCallback))); // [POST] /rooms. void TestStaticCreateRoomAsyncCallback(Action <long> next) { var identifier = "New"; var parameters = new NewRoomParameters { Description = string.Format(CultureInfo.InvariantCulture, roomDescription, identifier), IconPreset = IconPresetValue.Group, Link = false, LinkCode = "weqxdfas", LinkNeedAcceptance = true, MembersAdminIds = new[] { AccountId }, MembersMemberIds = null, MembersReadonlyIds = null, Name = string.Format(CultureInfo.InvariantCulture, roomName, identifier), }; ChatworkClient.PostRoomAsync( Token, response => { AssertPostRoomsResponse(response); next.Invoke(response.Data.RoomId); }, parameters); } // [GET] /rooms/{room_id}. void TestStaticGetRoomAsyncCallback(long roomId, Action <long> next) { ChatworkClient.GetRoomAsync( Token, response => { AssertGetRoomResponse(response, roomId); next.Invoke(roomId); }, roomId); } // [PUT] /rooms/{room_id}. void TestStaticPutRoomAsyncCallback(long roomId, Action <long> next) { var iconPreset = IconPresetValue.Business; var identifier = StringValueAttribute.GetStringValue(iconPreset); var parameters = new UpdateRoomParameters { Description = string.Format(CultureInfo.InvariantCulture, roomDescription, identifier), IconPreset = iconPreset, Name = string.Format(CultureInfo.InvariantCulture, roomName, identifier), }; ChatworkClient.PutRoomAsync( Token, response => { AssertPutRoomResponse(response, roomId); next.Invoke(roomId); }, roomId, parameters); } // [DELETE] /rooms/{room_id}. void TestStaticDeleteRoomAsyncCallback(long roomId) { var parameters = new DeleteRoomParameters { ActionType = ActionTypeValue.Leave, }; ChatworkClient.DeleteRoomAsync( Token, response => AssertDeleteRoomResponse(response), roomId, parameters); } }