コード例 #1
0
        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));
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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));
        }