コード例 #1
0
        public async Task <IActionResult> GetTodoItemAsync([FromRoute] string todoId,
                                                           CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            if (!Guid.TryParse(todoId, out var modelTodoItemId))
            {
                var error = ServiceErrorResponses.TodoNotFound(todoId);
                return(NotFound(error));
            }

            if (!HttpContext.Items.TryGetValue("userId", out var userId) ||
                !Guid.TryParse(userId.ToString(), out var userGuid))
            {
                var error = ServiceErrorResponses.UnAuthorized();
                return(BadRequest(error));
            }

            Model.TodoItem modelTodoItem = null;

            try
            {
                modelTodoItem = await repository.GetAsync(modelTodoItemId, userGuid, cancellationToken).ConfigureAwait(false);
            }
            catch (Model.TodoNotFoundException)
            {
                var error = ServiceErrorResponses.TodoNotFound(todoId);
                return(NotFound(error));
            }

            var clientTodoItem = ModelsConverters.TodoItems.TodoItemConverter.Convert(modelTodoItem);

            return(Ok(clientTodoItem));
        }
コード例 #2
0
        public static Client.TodoItem Convert(Model.TodoItem modelTodoItem)
        {
            if (modelTodoItem == null)
            {
                throw new ArgumentNullException(nameof(modelTodoItem));
            }

            var clientTodoItem = new Client.TodoItem(modelTodoItem.Id.ToString(), modelTodoItem.UserId.ToString(),
                                                     modelTodoItem.Title, modelTodoItem.Text, modelTodoItem.Priority.ToString(),
                                                     modelTodoItem.State.ToString(), modelTodoItem.CreatedAt, modelTodoItem.LastUpdateAt);

            return(clientTodoItem);
        }