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)); }
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); }