public void TestStaticRoomTaskLifecycleAsyncCallback() { var roomId = RoomList != null && RoomList.Any() ? RoomList.First() : Room; TestStaticGetRoomTasksAsyncCallback( roomId, taskIdList => TestStaticPostRoomTasksAsyncCallback( roomId, extendedTaskIdList => { var taskId = extendedTaskIdList.FirstOrDefault(x => !taskIdList.Contains(x)); TestStaticGetRoomTaskAsyncCallback(roomId, taskId); TestStaticPutRoomTaskStatusAsyncCallback(roomId, taskId); })); // [GET] /rooms/{room_id}/tasks. void TestStaticGetRoomTasksAsyncCallback(long roomId, Action <IReadOnlyCollection <long> > next) { var parameters = new RoomTasksParameters { AccountId = AccountId, AssignedByAccontId = AccountId, Status = TaskStatusValue.Open, }; ChatworkClient.GetRoomTasksAsync( Token, response => { AssertGetRoomTasksResponse(response); var taskIdList = response.Data ?.Select(x => x.TaskId).ToArray() ?? Array.Empty <long>(); next.Invoke(taskIdList); }, roomId, parameters); } // [POST] /rooms/{room_id}/tasks. void TestStaticPostRoomTasksAsyncCallback(long roomId, Action <IReadOnlyCollection <long> > next) { var now = DateTime.Now; var parameters = new NewRoomTaskParameters { Body = $"task test {now.Ticks}", Limit = now + TimeSpan.FromMinutes(60), LimitType = LimitTypeValue.Date, ToIds = MemberList, }; ChatworkClient.PostRoomTaskAsync( Token, response => { AssertPostRoomTasksResponse(response); var taskIdList = response.Data.TaskIds ?? Array.Empty <long>(); next.Invoke(taskIdList); }, roomId, parameters); } // [GET] /rooms/{room_id}/tasks/{task_id}. void TestStaticGetRoomTaskAsyncCallback(long roomId, long taskId) { ChatworkClient.GetRoomTaskAsync( Token, response => AssertGetRoomTaskResponse(response, taskId), roomId, taskId); } // [PUT] /rooms/{room_id}/tasks/{task_id}/status. void TestStaticPutRoomTaskStatusAsyncCallback(long roomId, long taskId) { var parameters = new UpdateRoomTaskStatusParameters { Body = TaskStatusValue.Done, }; ChatworkClient.PutRoomTaskStatusAsync( Token, response => AssertPutRoomTaskStatusResponse(response, taskId), roomId, taskId, parameters); } }