Beispiel #1
0
        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);
        }
Beispiel #3
0
        /// <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();
        }
Beispiel #4
0
        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));
        }