public async Task <Task> Create(Guid userId, Task task)
        {
            task.Id        = Guid.NewGuid();
            task.CreatedAt = DateTime.Now;

            var existingUser = await GetUserById(userId);

            existingUser.Tasks.Add(task);

            return(task);
        }
        public async Task <Task> Update(Guid userId, Task task)
        {
            var existingUser = await GetUserById(userId);

            var existingTask = existingUser.Tasks.FirstOrDefault(w => w.Id == task.Id);

            if (existingTask is null)
            {
                return(null);
            }

            existingTask.Name = task.Name;
            return(existingTask);
        }
        public async Task <bool> MarkAsDone(Guid userId, Task task)
        {
            var existingUser = await GetUserById(userId);

            var existingTask = existingUser.Tasks.FirstOrDefault(w => w.Id == task.Id);

            if (existingTask is null)
            {
                return(false);
            }

            existingTask.Done   = true;
            existingTask.DoneAt = DateTime.Now;

            return(true);
        }