private async void TasksTable_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0) { return; } if (e.ColumnIndex != TasksTable.Columns["Delete"].Index && e.ColumnIndex != TasksTable.Columns["Open"].Index) { return; } var active = TasksTable.CurrentRow; int id = Int32.Parse(active.Cells["Id"].Value.ToString()); if (e.ColumnIndex == TasksTable.Columns["Delete"].Index) { await RemoveTask?.Invoke(id); Reload?.Invoke(); } else { OpenTask?.Invoke(id); } }
private static async Task <HttpResponseMessage> OpenTask(HttpClient client, string cardId) { var command = new OpenTask { Id = cardId, Title = Guid.NewGuid().ToString("N") }; var response = await client.PostAsync("/tasks", command.AsJsonStringContent()); return(response); }
/// <summary> /// セッションのオープン操作をおこなうコルーチンを返却します。<br /> /// <br /> /// コルーチンの完了時にはコールバックが返っていることが保証されます。<br /> /// ただし、オープン状態のセッションは外部要因によって予期せずクローズされることがあるため、オープン操作成功のコールバックが返った時点でも、セッションが確実にオープン状態であることは保証されません。<br /> /// <br /> /// セッションのオープン操作は、オープン途中やすでにオープン状態のセッションに対しても重ねておこなうことができます。<br /> /// </summary> /// /// <returns>IEnumerator</returns> /// <param name="callback">コールバックハンドラ</param> public IEnumerator Open(OpenCallbackType callback) { var openTask = new OpenTask(callback); using (var scopedLock = new NonreentrantLock.ScopedLock(_lock)) { if (_state == State.Available) { openTask.Complete(new AsyncResult <OpenResult>(new OpenResult(), null)); } else { _openTaskList.Add(openTask); while (true) { if (openTask.IsCompleted) { break; } IEnumerator current = null; if (_state == State.Idle) { _state = State.Opening; if (Credential is BasicGs2Credential) { current = OpenImpl(); } else if (Credential is ProjectTokenGs2Credential) { using (var scopedUnlock = new NonreentrantLock.ScopedUnlock(_lock)) { OpenCallback(Credential.ProjectToken, null); } } } using (var scopedUnlock = new NonreentrantLock.ScopedUnlock(_lock)) { yield return(current); } } } } openTask.InvokeCallback(); }
private async void TasksTable_KeyDown(object sender, KeyEventArgs e) { var active = TasksTable.CurrentRow; int id = Int32.Parse(active.Cells["Id"].Value.ToString()); if (e.KeyCode == Keys.Delete) { await RemoveTask?.Invoke(id); Reload?.Invoke(); } if (e.KeyCode == Keys.Enter) { OpenTask?.Invoke(id); } }
public async Task OpensNewCard() { var cardId = Guid.NewGuid().ToString(); var command = new OpenTask { Id = cardId, Title = Guid.NewGuid().ToString("N") }; await _handlers.Handle(command); var streamName = $"Card-{cardId}"; await _esdb.AssertStreamExists(streamName); await _esdb.AssertEventTypes(streamName, new[] { typeof(TaskOpened) }); }
public async Task <IActionResult> CreateTask(OpenTask command) { await _openTaskHandler.Handle(command); return(StatusCode(StatusCodes.Status201Created)); }