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