public Task UpdateAsync(UpdateTodoItemInfo updateTodoItemInfo) { if (updateTodoItemInfo == null) { throw new ArgumentNullException(nameof(updateTodoItemInfo)); } Validator.ValidateObject(updateTodoItemInfo, new ValidationContext(updateTodoItemInfo), validateAllProperties: true); return(InternalUpdateAsync(updateTodoItemInfo)); }
private async Task InternalUpdateAsync(UpdateTodoItemInfo updateTodoItemInfo) { TodoItem existingTodoItem = await GetExistingTodoItem(updateTodoItemInfo.Id, updateTodoItemInfo.Owner); if (updateTodoItemInfo.IsComplete.HasValue) { existingTodoItem.IsComplete = updateTodoItemInfo.IsComplete.Value; } existingTodoItem.Name = updateTodoItemInfo.Name; existingTodoItem.LastUpdatedBy = updateTodoItemInfo.Owner.GetName(); existingTodoItem.LastUpdatedOn = DateTime.UtcNow; todoDbContext.TodoItems.Update(existingTodoItem); await todoDbContext.SaveChangesAsync(); logger.LogInformation("Item with id {TodoItemId} has been updated by user [{User}]" , existingTodoItem.Id, existingTodoItem.LastUpdatedBy); }