public async Task <IActionResult> Put([FromBody] DailyTasksResource dtResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var dtDb = await context.DailyTasks.Include(x => x.Tasks).SingleOrDefaultAsync(x => x.Id == dtResource.Id); if (dtDb == null) { return(BadRequest("Task doesn't exists!")); } if (dtResource.Tasks.Count() == 0) { context.Tasks.RemoveRange(dtDb.Tasks); context.DailyTasks.Remove(dtDb); await context.SaveChangesAsync(); dtResource.Id = 0; return(Ok(dtResource)); } RemoveTasks(dtResource, dtDb); mapper.Map <DailyTasksResource, DailyTasks>(dtResource, dtDb); await context.SaveChangesAsync(); mapper.Map <DailyTasks, DailyTasksResource>(dtDb, dtResource); return(Ok(dtResource)); }
private void RemoveTasks(DailyTasksResource dtResource, DailyTasks dtDb) { var removed = dtDb.Tasks.Where(x => !dtResource.Tasks.Any(y => y.Id == x.Id)); foreach (var task in removed.ToList()) { context.Tasks.Remove(task); } }
public async Task <IActionResult> Post([FromBody] DailyTasksResource dtResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var dtDb = mapper.Map <DailyTasksResource, DailyTasks>(dtResource); await context.DailyTasks.AddAsync(dtDb); await context.SaveChangesAsync(); mapper.Map <DailyTasks, DailyTasksResource>(dtDb, dtResource); return(Ok(dtResource)); }