public async Task <IActionResult> UpdateTask(int id, PrivateTask task) { if (id != task.TaskId) { return(BadRequest()); } var requestedTask = await _ctx.PrivateTasks .SingleOrDefaultAsync(t => t.TaskId == id); if (requestedTask == null) { return(NotFound()); } //picking desired attributes in case id or ownership was wrongly changed requestedTask.Title = task.Title; requestedTask.Description = task.Description; requestedTask.Checklists = task.Checklists; try { await _ctx.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) when(!TaskExists(id)) { return(NotFound()); } return(NoContent()); }
public async Task <IActionResult> CreatePrivateTask(PrivateTask task) { PrivateTask newTask = new PrivateTask() { Title = task.Title, Deadline = task.Deadline, Description = task.Description, Checklists = task.Checklists, Status = task.Status }; var username = HttpContext.User.Identity.Name; var user = await _ctx.Credentials .SingleOrDefaultAsync(u => u.Username == username); _ctx.Entry(user) .Collection(u => u.PrivateTasks) .Load(); if (!user.PrivateTasks.Any()) { user.PrivateTasks = new List <PrivateTask>(); } user.PrivateTasks.Add(newTask); await _ctx.SaveChangesAsync(); return(CreatedAtAction(nameof(GetAPrivateTask), new { id = newTask.TaskId }, newTask)); }