public async Task ChangeChecklistTaskStatus(ChangeChecklistTaskStatusRequest request)
        {
            var filter    = Filter.And(Filter.Eq(x => x.Id, request.ChecklistId), Filter.ElemMatch(x => x.ChecklistTasks, x => x.Id == request.ChecklistTaskId));
            var checklist = await Collection.Find(filter).FirstAsync();

            var checklistTask = checklist.ChecklistTasks.First(x => x.Id == request.ChecklistTaskId);
            var update        = Update.Set("checklistTasks.$.done", request.IsChecked);
            await Collection.UpdateOneAsync(filter, update);
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "patch", Route = null)] HttpRequest req,
            ILogger log, [RequestBody] ChangeChecklistTaskStatusRequest request)
        {
            if (await UserRepo.HasAccessToChecklist(request.ChecklistId, request.Auth))
            {
                await ChecklistsRepo.ChangeChecklistTaskStatus(request);

                log.LogInformation("Checklist {id} task {id2} status changed to {d}",
                                   request.ChecklistId, request.ChecklistTaskId, request.IsChecked);
                return(Ok());
            }

            return(Unauthorized());
        }