public ActionResult <TodoItemResponseDTO> PutTodoItem(int id, TodoItemUpsertDTO todoItem)
        {
            try
            {
                if (todoItem == null)
                {
                    return(BadRequest());
                }

                var existingItem = _todoRepository.GetSingle(id);

                if (existingItem == null)
                {
                    return(NotFound());
                }

                TodoEntity item = _mapper.Map <TodoEntity>(todoItem);
                //todo look at me
                _todoRepository.Update(id, item);

                if (!_todoRepository.Save())
                {
                    throw new Exception("Updating a fooditem failed on save.");
                }

                TodoItemResponseDTO responseItem = _mapper.Map <TodoItemResponseDTO>(item);
                return(responseItem);
            } catch (Exception ex) {
                _logger.LogError(String.Concat("An unhanded error occured when updating items: ", ex.Message));
                return(StatusCode(500));
            }
        }
        public ActionResult <TodoItemResponseDTO> PostTodoItem(TodoItemUpsertDTO todoItem)
        {
            try
            {
                TodoEntity item = _mapper.Map <TodoEntity>(todoItem);
                item.Id = _todoRepository.Count() + 1;
                _todoRepository.Add(item);
                _todoRepository.Save();

                TodoItemResponseDTO responseItem = _mapper.Map <TodoItemResponseDTO>(item);
                return(CreatedAtAction(nameof(GetTodoItem), new { id = item.Id }, responseItem));
            } catch (Exception ex) {
                _logger.LogError(String.Concat("An unhandled error occured when adding items: ", ex.Message));
                return(StatusCode(500));
            }
        }