public async Task <AddTodosResponseModel> ExecuteAsync(AddTodosRequestModel request, CancellationToken cancellationToken = default)
        {
            _logger.LogInformation($"Getting User: {request.UserId}");
            var user = _userRepository.Get(new[] { request.UserId }).FirstOrDefault();

            if (user == null)
            {
                _logger.LogWarning($"User: {request.UserId} does not exist");
                return(new AddTodosResponseModel {
                    Success = false
                });
            }

            var todos = request.Todos.Select(todo => new Todo
            {
                Done          = todo.Done,
                NoteText      = todo.Text,
                EventDateTime = todo.DateTime.ToUniversalTime().DateTime
            }).ToList();

            foreach (var todo in todos)
            {
                user.Todos.Add(todo);
            }

            await _userRepository.SaveChangesAsync(cancellationToken);

            return(new AddTodosResponseModel
            {
                Success = true,
                UserId = user.Id,
                TodoIds = todos.Select(todo => todo.Id).ToList()
            });
        }
        public async Task <IActionResult> Post([FromBody] AddTodosRequestModel request, CancellationToken cancellationToken = default)
        {
            _logger.LogTrace($"{nameof(AddTodoController)}.{nameof(Post)} hit");
            var errors = request.Validate();

            if (errors.Any())
            {
                return(BadRequest(errors));
            }

            var response = await _command.ExecuteAsync(request, cancellationToken);

            return(Ok(response));
        }