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