Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 2.78 KB

step03.md

File metadata and controls

80 lines (61 loc) · 2.78 KB

KatlaSport Project

Шаг 3. ProductCount

Задание

Расширить модель ProductCategoryListItem в проекте KatlaSport.Services.Models, добавив новое поле ProductCount. Добавить в класс ProductCategoryService вычисление значения поля ProductCount. Для этого шага в коде есть подсказки "TODO STEP 3".

Выполнение

  1. Создать новую ветку с именем "step3":
$ git checkout -b step3
$ git branch
  master
  step1
  step2
* step3
  1. Добавить новое поле ProductCount в класс API-модели ProductCategoryListItem:
/// <summary>
/// Gets or sets a count of products in a product category.
/// </summary>
public int ProductCount { get; set; }
  1. Расширить код метода GetCategoriesAsync в классе ProductCategoryService - установить для каждой категории значение поля ProductCount. Обязательно использовать асинхронный метод CountAsync и оператор await для вызова.
foreach (var c in categories)
{
    c.ProductCount = await _context.Products.Where(p => p.CategoryId == c.Id).CountAsync();
}
  1. Собрать проект, исправить ошибки и предупреждения (если есть).

  2. Сохранить изменения как отдельный коммит.

$ git status
$ git diff
$ git add *
$ git commit -m "Add ProductCount to ProductCategoryListItem model. Get ProductCount evaluation logic to ProductCategoryService.GetCategoriesAsync."
$ git log
$ git push -u origin step3
  1. Слить ветку "step3" с веткой "master".
$ git checkout master
$ git branch
* master
  step1
  step2
  step3
$ git merge --squash step3
$ git commit -m "Merge step3. Add ProductCount to ProductCategoryListItem model. Get ProductCount evaluation logic to ProductCategoryService.GetCategoriesAsync."
$ git push

Проверка

  1. Запустить swagger-console.
  2. Открыть раздел "ProductCategories".
  3. Запустить "GET /api/categories".
  4. Найти в "Response Body" json-поле "productCount".

Материалы

Материалы для самостоятельного изучения: