public async Task <bool> UpdateSubActivityAsync(string userId, SubActivityUpdateDto model) { var subActivity = await _context .SubActivities .Include(subActivity => subActivity.SubActivityItems) .SingleOrDefaultAsync(s => s.Id == model.Id && s.UserId == userId); _mapper.Map(model, subActivity); subActivity.SubActivityItems.Clear(); subActivity.SubActivityItems = await _context.Items .Where(i => model.ItemIds.Contains(i.Id)) .Select(item => new SubActivityItemJoin() { Item = item, SubActivity = subActivity }) .ToListAsync(); return(await _context.SaveChangesAsync() == model.ItemIds.Count()); }
public async Task <IActionResult> EditSubActivity(int id, SubActivityUpdateDto subActivityUpdate) { _userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (!ModelState.IsValid) { return(BadRequest("Please submit a valid subactivity")); } if (id != subActivityUpdate.Id) { return(BadRequest("Unable to update subactivity")); } var result = await _subActivityService.UpdateSubActivityAsync(_userId, subActivityUpdate); if (result) { return(NoContent()); } throw new System.Exception("Creating the subactivity failed on save"); }