public async Task <ActionResult <ToDoItemDTO> > CreateTodoItem([FromBody] ToDoItemDTO todoItemDTO) { if (todoItemDTO == null) { throw new ArgumentNullException("To Do item must not be null"); } return(await ToDoItemRepository.CreateItem(todoItemDTO)); }
public async Task <ActionResult <ToDoItemResponse> > Update(string listIdentity, string creationDateTimeCode, [FromBody] ToDoItemRequest request) { var creationDateTime = ParseDateTimeCode(creationDateTimeCode); var list = await _repository.GetListByIdentity(listIdentity); if (list == null) { return(NotFound()); } var item = await _repository.GetItemByCreationDateTime(list.Id, creationDateTime); if (item == null) { item = await _repository.CreateItem(ParseItem(list.Id, creationDateTime, request)); return(CreatedAtRoute("GetItemByCreationDateTime", new { listIdentity, creationDateTimeCode = FormatDateTimeCode(item.CreationDateTime) }, ProjectItem(listIdentity, item))); } else if (item.LastUpdateDateTime < request.UpdateDateTime) { ParseOntoItem(request, item); await _repository.SaveChanges(); } return(ProjectItem(listIdentity, item)); }