public TodoItemRetrieve Get(string id) { var item = _todoItemService.Retrieve(id); var history = _todoItemStatusHistoryService.RetrieveByTodoItemId(id).ToList(); return(TodoItemMapper.ToController(item, history)); }
public HttpResponseMessage Post(CreateTodoItemModel model) { if (ModelState.IsValid) { // Map the model var mapper = new CreateTodoItemMapper(); mapper.Configure(); var todoItem = mapper.Map(model); // Create the item var createTodoItemHandler = new CreateTodoItemHandler(); createTodoItemHandler.Handle(todoItem); // Map the item to the json var mapperResult = new TodoItemMapper(); mapperResult.Configure(); var todoItemResult = mapperResult.Map(todoItem); // Return the response var response = Request.CreateResponse <TodoItemResult>(HttpStatusCode.Created, todoItemResult); return(response); } return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ModelState)); }
public IEnumerable <TodoItemRetrieve> GetAll() { var items = _todoItemService.Retrieve(); var history = _todoItemStatusHistoryService.Retrieve().GroupBy(h => h.TodoItemId).ToDictionary(g => g.Key, g => g.ToList()); return(TodoItemMapper.ToController(items, history)); }
public async Task <Response <TodoItem> > HandleAsync(CreateTodoItemRequest request) { var todoItemEntityResponse = new Response <TodoItemEntity>(); // Query. Apply all validation and modification rules. These rules can only query the database. await _rulesEngine.ProcessAsync(request, todoItemEntityResponse, _createRulesFactory.Create().ToList()); if (todoItemEntityResponse.HasErrors()) { return(new Response <TodoItem>(todoItemEntityResponse.Notifications)); } // Query. Apply all validation and modification rules. These rules can only query the database. await _rulesEngine.ProcessAsync(request, todoItemEntityResponse, _saveRulesFactory.Create().ToList()); if (todoItemEntityResponse.HasErrors()) { return(new Response <TodoItem>(todoItemEntityResponse.Notifications)); } // Command. Save the data. await _createTodoItemRepository.SaveAsync(todoItemEntityResponse); LogTodoItemEntityResponse(todoItemEntityResponse); return(new Response <TodoItem>(todoItemEntityResponse.Notifications, TodoItemMapper.MapToTodoItem(todoItemEntityResponse.Item))); }
public IEnumerable <TodoItemResult> Handle() { // Get the todoitems var todoItems = new TodoContext().TodoItems; // Map all the items to the json objects var mapper = new TodoItemMapper(); mapper.Configure(); return(todoItems.Select(mapper.Map)); }
public TodoItemRetrieve Create(TodoItemCreate item) { var now = DateTime.UtcNow; var status = TodoItemStatus.Pending; var objectToCreate = TodoItemMapper.ToDataAccess(item, now, status); var createdThing = _todoItemService.Create(objectToCreate); var history = MakeStatusHistory(createdThing.Id, status, now); return(TodoItemMapper.ToController(createdThing, new List <TodoItemStatusHistoryDataAccess> { history })); }
public HttpResponseMessage Get(int id) { // Get the item var getTodoItemHandler = new GetTodoItemHandler(); var result = getTodoItemHandler.Handle(id); // Map the item var mapper = new TodoItemMapper(); mapper.Configure(); var todoItemResult = mapper.Map(result); // Create + return response var response = Request.CreateResponse <TodoItemResult>(HttpStatusCode.OK, todoItemResult); return(response); }
public async Task <ActionResult <TodoItem> > GetTodoItem(string id) { _logger.LogInformation($"Getting Todo item, id: {id}"); var table = TableStorageHelper.GetTableReference(_storageConnectionString, _tableName); var findOp = TableOperation.Retrieve <TodoItemEntity>(TodoItemMapper.TablePartitionKey, id); var findResult = await table.ExecuteAsync(findOp); if (findResult.Result == null) { return(new NotFoundResult()); } var todoEntity = (TodoItemEntity)findResult.Result; var todoItem = TodoItemMapper.ToModel(todoEntity); return(new OkObjectResult(todoItem)); }
public async Task <ActionResult <TodoItem> > CreateTodoItem(TodoItem todoItem) { _logger.LogInformation($"Creating new Todo item"); if (todoItem == null || string.IsNullOrWhiteSpace(todoItem.Name)) { return(new BadRequestResult()); } var table = TableStorageHelper.GetTableReference(_storageConnectionString, _tableName); var newTodoItem = new TodoItem { Name = todoItem.Name, IsCompleted = false }; // Create the InsertOrReplace table operation TableOperation insertOp = TableOperation.Insert(TodoItemMapper.ToEntity(newTodoItem)); // Execute the operation. TableResult result = await table.ExecuteAsync(insertOp); return(CreatedAtAction(nameof(GetTodoItem), new { id = newTodoItem.Id }, newTodoItem)); }