Читаем Язык программирования C#9 и платформа .NET5 полностью

[SwaggerResponse(204, "No content")]

[HttpGet("bymake/{id?}")]

public ActionResult> GetCarsByMake(int? id)

{

  if (id.HasValue && id.Value>0)

  {

    return Ok(((ICarRepo)MainRepo).GetAllBy(id.Value));

  }

  return Ok(MainRepo.GetAllIgnoreQueryFilters());

}

Атрибут HttpGet расширяет маршрут константой bymake и необязательным идентификатором производителя для фильтрации, например:

https://localhost:5021/api/cars/bymake/5

Сначала в методе проверяется, было ли передано значение для id. Если нет, то получаются все автомобили. Если значение было передано, тогда с использованием метода GetAllBy() класса CarRepo получаются автомобили по производителю. Поскольку защищенное свойство MainRepo базового класса определено с типом IRepo, его потребуется привести к типу ICarRepo.

<p id="AutBody_Root1428"><strong>Оставшиеся контроллеры</strong></p>

Все оставшиеся контроллеры, специфичные для сущностей, будут производными от класса BaseCrudController, но без добавления дополнительной функциональности. Добавьте в каталог Controllers еще четыре пустых контроллера API с именами CreditRisksController, CustomersController, MakesController и OrdersController.

Вот код оставшихся контроллеров:

// CreditRisksController.cs

using AutoLot.Api.Controllers.Base;

using AutoLot.Models.Entities;

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Services.Logging;

using Microsoft.AspNetCore.Mvc;

namespace AutoLot.Api.Controllers

{

  [Route("api/[controller]")]

  public class CreditRisksController

    : BaseCrudController

  {

    public CreditRisksController(

      ICreditRiskRepo creditRiskRepo, IAppLogging logger)

      : base(creditRiskRepo, logger)

    {

    }

  }

}

// CustomersController.cs

using AutoLot.Api.Controllers.Base;

using AutoLot.Models.Entities;

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Services.Logging;

using Microsoft.AspNetCore.Mvc;

namespace AutoLot.Api.Controllers

{

  [Route("api/[controller]")]

  public class CustomersController : BaseCrudController

  {

    public CustomersController(

      ICustomerRepo customerRepo, IAppLogging logger)

      : base(customerRepo, logger)

    {

    }

  }

}

// MakesController.cs

using AutoLot.Api.Controllers.Base;

using AutoLot.Models.Entities;

using Microsoft.AspNetCore.Mvc;

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Services.Logging;

namespace AutoLot.Api.Controllers

{

  [Route("api/[controller]")]

  public class MakesController : BaseCrudController

  {

    public MakesController(IMakeRepo makeRepo, IAppLogging logger)

      : base(makeRepo, logger)

    {

    }

  }

}

// OrdersController.cs

using AutoLot.Api.Controllers.Base;

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Models.Entities;

using AutoLot.Services.Logging;

using Microsoft.AspNetCore.Mvc;

namespace AutoLot.Api.Controllers

{

  [Route("api/[controller]")]

  public class OrdersController : BaseCrudController

  {

     public OrdersController(IOrderRepo orderRepo,

       IAppLogging logger) : base(orderRepo, logger)

    {

    }

  }

}

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных