In the previous posting we saw how to create an API to get all the cars in our database. In this posting we’ll look at the remaining CRUD (Create Review Update Delete) operations.
As you may remember, we created a controller named CarController. ASP.NET will strip off the word Controller, leaving us with Car, which we will use to access the endpoints of our API.
An endpoint is just a URL that takes us to the operation we want.
We looked at GetAll, let’s take a look at Get. In this case, we have an id for the car we want, but we want all the details of that car. Simple!
First we need a method in our controller:
[HttpGet("{id}")]
public async Task<ActionResult<Car>> Get(int id)
{
var car = await _carRepository.Get(id);
if (car == null)
{
return NotFound();
}
return car;
}
Notice that next to the HttpGet attribute we indicate that the endpoint will take the id of the car we want
[HttpGet("{id}")]
This means we need to modify the URL to access the endpoint by adding the actual id of the desired record.
The first thing we do is call the repository, passing in the id.
public async Task<Car?> Get(int id)
{
var query = "select * from car where id=@id";
using var db = databaseConnectionFactory.GetConnection();
return await db.QuerySingleOrDefaultAsync<Car>(query, new {id});
}
In the Get method of the repo we create our query, get our connection and execute the query returning the value we retrieved (if any). This is very close to what we did previously.
Back in the controller, we check to ensure that we received a Car. If not, we return NotFound which is a shorthand way of returning a 404 message. Otherwise we return the Car as a Json object. You can see this in Postman:
We’ll issue a Get command passing in the URL, ending with the id of the car we want (in this case 4)
Notice that we get back a 200, indicating success. In the body of the returned Json we get back all the details of the Car. (If you decide to use DTOs you can get whatever subset of the information makes sense):
Post
Adding a Car to the database is quite similar. We need a method in the controller and one in the repo. Here is the controller method:
[HttpPost]
public async Task<ActionResult<Car>> Post([FromBody] Car car)
{
try
{
car = await _carService.Insert(car);
}
catch (Exception e)
{
return BadRequest(e);
}
return CreatedAtAction(nameof(Get), new { id = car.Id }, car);
}
Look at the attribute in the parameter ([FromBody]. This indicates to the API that the data needed to insert this Car will be in the body of the call. The alternative is FromQuery. You can, in fact, use both in one call.
Note: CreatedAction causes a return code of 201, which is what we want. Here’s the body we’ll insert:
When we click Send this data is sent to the API which returns 201 (created) and in the body of the returned data we see the new id assigned to this car
Service Class
Notice that this time, instead of calling the Repo directly, the method in the controller calls into a service class. A service class is a great way to get the logic out of the controller, where it does not belong, without putting it into the repo, where it also does not belong.
Here’s the top of the CarService
public class CarService : ICarService
{
private readonly ICarRepository _carRepository;
public CarService(ICarRepository carRepository)
{
_carRepository = carRepository;
}
public async Task<Car> Insert(Car car)
{
var newId = await _carRepository.UpsertAsync(car);
if (newId > 0)
{
car.Id = newId;
}
else
{
throw new Exception("Failed to insert car");
}
return car;
}
All the logic associated with this insert (e.g., making sure we get back a legitimate id from the repository, etc.) is encapsulated in the service.
This leaves the repository free to just talk to the database,
public async Task<int> UpsertAsync(Car car)
{
using var db = databaseConnectionFactory.GetConnection();
var sql = @"
DECLARE @InsertedRows AS TABLE (Id int);
MERGE INTO Car AS target
USING (SELECT @Id AS Id, @Name AS Name, @Model_Year AS Model_Year,
@Is_Deleted AS Is_Deleted, @Origin AS origin ) AS source
ON target.Id = source.Id
WHEN MATCHED THEN
UPDATE SET
Name = source.Name,
Model_Year = source.Model_Year,
Is_Deleted = source.Is_Deleted,
Origin = source.Origin
WHEN NOT MATCHED THEN
INSERT (Name, Model_Year, Is_Deleted, Origin)
VALUES (source.Name, source.Model_Year,
source.Is_Deleted, source.Origin)
OUTPUT inserted.Id INTO @InsertedRows
;
SELECT Id FROM @InsertedRows;
";
var newId = await db.QuerySingleOrDefaultAsync<int>(sql, car);
return newId == 0 ? car.Id : newId;
}
Rather than having an insert and an update method, we combine that logic into this upsert method. This is a common idiom for database manipulation.
Note: to make this work, be sure to fill in all the fields for a car (or at least as many as you want to have in the Database.
Delete
As noted earlier, we will implement a soft delete; that is, rather than actually removing the data from the database, we’ll just set the is_deleted column to true. This allows us to reverse the action, and make the row not-deleted by simply changing that value to false.
[HttpDelete(“{id}”)]
public async Task<IActionResult> Delete(int id)
{
try
{
await _carService.Delete(id);
}
catch (Exception e)
{
return BadRequest(e);
}
return NoContent();
}
As you would expect, the endpoint takes an id (the id of the car we want to delete). The controller then hands that off to the service, which calls the repository which, in turn, marks that id as deleted:
public async Task<int> DeleteAsync(int id)
{
using var db = databaseConnectionFactory.GetConnection();
var query = "UPDATE car SET Is_Deleted = 1 WHERE Id = @Id";
return await db.ExecuteAsync(query, new { Id = id });
}
If you are comfortable with SQL none of this will be very surprising. The key walkaway is:
Summary
In this post we saw that endpoints are just URLs with (potentially) data in the body of the request. The controller handles the URL and in our case passes the id or other data to the service. The service handles the (business) logic and then delegates talking to the database to the repository.
Book
This posting is excerpted from my forthcoming book Building APIs with .NET and C# to be released next year by Packt.







































кайтинг Безопасность в кайтсёрфинге превыше всего. Учитесь читать ветер, соблюдайте правила поведения на воде, используйте защитное снаряжение и не переоценивайте свои возможности.
Hello everyone, it’s my first pay a visit at this website, and post is in fact fruitful in support of me, keep up posting such articles or reviews.
http://piar.org.ua/osvitni-resursy-z-remontu-far-audi.html
кайт школа Кайтсёрфинг: Скользящая элегантность по волнам, танец с ветром, требующий баланса и отваги. Освоив кайтсёрфинг, вы откроете мир свободы и адреналина.
кайтсёрфинг Инструктор по кайтсерфингу: квалификация и опыт
809196 513406Giving you the most effective News is really significantly imptortant to us. 829752
После звонка специалист клиники «ВитаЛайн» оперативно отправляется по указанному адресу и обычно прибывает в течение 30–60 минут. На месте врач сразу проводит детальную диагностику, оценивая состояние пациента: проверяет пульс, давление, сатурацию, степень интоксикации и наличие хронических болезней. На основании результатов осмотра нарколог разрабатывает индивидуальную схему терапии.
Получить дополнительные сведения – запой нарколог на дом в новосибирске
Для проживающих в Балашихе: услуга стационарного вывода из запоя от Частного Медика 24 — переходите по ссылке.
Что скрывают от вас? – нарколог вывод из запоя
Стоимость услуг по установке капельницы определяется индивидуально и зависит от нескольких факторов. В первую очередь, цена обусловлена тяжестью состояния пациента: при более сильной интоксикации и выраженных симптомах абстинентного синдрома может потребоваться расширенная терапия. Кроме того, итоговая сумма зависит от продолжительности запоя, так как длительное употребление спиртного ведет к более серьезному накоплению токсинов, требующему дополнительных лечебных мероприятий.
Детальнее – http://www.domen.ru
В Балашихе (будни и выходные): стационарный вывод из запоя в клинике Частный Медик 24 — переход по ссылке.
Хочу знать больше – вывод из запоя на дому круглосуточно
Затяжной запой опасен для жизни. Врачи наркологической клиники в Ростове-На-Дону проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Узнать больше – https://vyvod-iz-zapoya-rostov16.ru/
В Ростове-На-Дону решение есть — наркологическая клиника. Здесь помогают людям выйти из запоя без страха и осуждения. Всё анонимно, грамотно и с заботой о каждом пациенте.
Познакомиться с результатами исследований – вывод из запоя анонимно
Стационарный вывод из запоя в Балашихе — лечение в Частном Медике 24, переходите по ссылке на страницу услуги.
Хочешь знать всё? – вывод из запоя на дому город балашиха
Запой – это угрожающее здоровью состояние, при котором человек утрачивает контроль над употреблением алкоголя, что приводит к накоплению токсинов в организме и может вызвать серьезные осложнения. В Уфе, столице Республики Башкортостан, опытные наркологи предоставляют услугу вызова на дом, позволяющую оперативно начать детоксикацию и стабилизировать состояние пациента в комфортной, знакомой обстановке. Такой подход обеспечивает не только быстрый вывод из запоя, но и комплексную терапию, включающую медикаментозное лечение и психологическую поддержку.
Получить больше информации – https://narcolog-na-dom-ufa00.ru/narkolog-na-dom-kruglosutochno-ufa
Когда организм на пределе, важна срочная помощь в Ростове-На-Дону — это команда опытных наркологов, которые помогут быстро и мягко выйти из запоя без вреда для здоровья.
Переходите по ссылке ниже – наркологический вывод из запоя город ростов-на-дону
Надёжная капельница от запоя в стационаре в клинике Частный Медик?24 (Коломна) — полный курс лечения, узнайте больше.
Детальнее – капельница от запоя вызов
Группа препаратов
Разобраться лучше – врач на дом капельница от запоя в нижний новгороде
После поступления вызова наш нарколог выезжает к пациенту в кратчайшие сроки, прибывая по адресу в пределах 30–60 минут. Специалист начинает процедуру с подробного осмотра и диагностики, измеряя ключевые показатели организма: артериальное давление, частоту пульса, насыщенность кислородом и собирая подробный анамнез.
Получить дополнительные сведения – https://narcolog-na-dom-novosibirsk00.ru/narkolog-na-dom-czena-novosibirsk
Когда запой превращается в острую угрозу здоровью, оперативное вмешательство становится необходимым условием для спасения жизни и предотвращения серьезных осложнений. В Уфе наркологи выезжают на дом для оказания качественной помощи при запое, предлагая детоксикацию, корректировку обменных процессов и психологическую поддержку. Такой формат лечения обеспечивает комфортную обстановку, индивидуальный подход и полную конфиденциальность для каждого пациента.
Подробнее – https://narcolog-na-dom-ufa0.ru/narkolog-na-dom-kruglosutochno-ufa/
Наши специалисты используют проверенные медикаменты, которые подбираются индивидуально для каждого пациента:
Подробнее можно узнать тут – нарколог на дом анонимно в воронеже
Резкий отказ от алкоголя без врачебной помощи может спровоцировать абстинентный синдром, который сопровождается судорогами, галлюцинациями, аритмией и критическими скачками артериального давления. В тяжёлых случаях состояние может осложниться алкогольным делирием (белая горячка), приступами паники, депрессией и острыми сердечно-сосудистыми расстройствами.
Получить дополнительные сведения – нарколог вывод из запоя
Услуга стационарного вывода из запоя от Частного Медика 24 в Балашихе — подробнее на странице предложения.
Исследовать вопрос подробнее – https://vyvod-iz-zapoya-v-stacionare-balashiha11.ru/
Затяжной запой опасен для жизни. Врачи наркологической клиники в Ростове-На-Дону проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Раскрыть тему полностью – вывод из запоя недорого в ростове-на-дону
Врачи клиники «ВитаЛайн» для снятия интоксикации и облегчения состояния пациента применяют исключительно качественные и проверенные лекарственные препараты, подбирая их в зависимости от особенностей ситуации и состояния здоровья пациента:
Детальнее – нарколог на дом анонимно новосибирск
В Коломне клиника Частный Медик?24 предлагает капельницу от запоя в стационаре — подробности на сайте клиники.
Подробнее – после капельницы от запоя
Ищете капельницу от запоя в стационаре в Коломне? Посмотрите предложение Частного Медика?24 по ссылке.
Получить дополнительные сведения – https://kapelnica-ot-zapoya-kolomna14.ru/
Услуга стационарной капельницы от запоя от Частного Медика?24 в Коломне — ознакомьтесь на странице предложения.
Подробнее – капельница от запоя цена коломна
Первоначально врач осматривает пациента, узнаёт длительность запоя, наличие хронических заболеваний, оценивает степень интоксикации. Этот переходный момент очень важен, так как точная диагностика позволяет определить, какие препараты и инфузионные растворы будут наиболее эффективны и безопасны.
Разобраться лучше – http://vyvod-iz-zapoya-arkhangelsk6.ru/vyvod-iz-zapoya-kruglosutochno-arkhangelsk/
Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something. I think that you could do with a few pics to drive the message home a little bit, but instead of that, this is excellent blog. A great read. I will definitely be back.
https://www.google.rs/url?q=https://seattlelimorates.com/
Компоненты капельницы
Выяснить больше – капельница от запоя на дому в красноярске
Это позволяет оперативно и с высокой точностью определить степень алкогольной интоксикации, выявить наличие сопутствующих заболеваний и выбрать наиболее оптимальную и безопасную стратегию лечения, учитывающую все индивидуальные особенности конкретного пациента.
Подробнее тут – https://vyvod-iz-zapoya-arkhangelsk66.ru/vyvod-iz-zapoya-na-domu-arkhangelsk/
На основе полученных диагностических данных врач подбирает оптимальные препараты и дозировки, разрабатывая персональный план лечебных мероприятий.
Подробнее – выезд нарколога на дом
Услуга стационарного вывода из запоя от Частного Медика 24 в Балашихе — подробнее на странице предложения.
Переходите по ссылке ниже – вывод из запоя цена московская область
Игнорирование этих симптомов или попытки самолечения могут привести к серьезным осложнениям. Своевременная установка капельницы на дому позволяет быстро улучшить состояние пациента и минимизировать последствия запоя.
Подробнее можно узнать тут – капельница от запоя наркология в нижний новгороде
Комплексная терапия при выводе из запоя на дому включает в себя два основных направления: медикаментозную детоксикацию и психологическую поддержку. Такой подход позволяет добиться быстрого и устойчивого эффекта, минимизируя риск осложнений и обеспечивая долгосрочную ремиссию.
Подробнее можно узнать тут – http://narcolog-na-dom-ufa000.ru
При обращении в клинику «НаркоНет» пациенту предоставляется полный спектр мероприятий, направленных на восстановление организма после запоя. Сначала наш специалист приезжает на дом в течение 30–60 минут после вызова. На месте проводится детальный осмотр: измеряются основные жизненные показатели (давление, пульс, уровень кислорода в крови), собирается подробный анамнез и оценивается степень интоксикации. Полученные данные позволяют врачу разработать индивидуальный план лечения.
Получить дополнительную информацию – капельница от запоя нижний новгород.
Затяжной запой опасен для жизни. Врачи наркологической клиники в Ростове-На-Дону проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Не пропусти важное – вывод из запоя на дому город ростов-на-дону
Близкий человек в запое? Не ждите ухудшения. Обратитесь в клинику — здесь проведут профессиональный вывод из запоя с последующим восстановлением организма.
Это ещё не всё… – rostov-na-donu
Первый этап лечения направлен на быстрый вывод токсинов, накопившихся в организме вследствие длительного употребления алкоголя. Для этого применяются современные препараты, позволяющие очистить кровь и восстановить нормальный обмен веществ.
Исследовать вопрос подробнее – нарколог на дом вывод из запоя
В «Чистом Дыхании» вы встретите врачей-наркологов, психиатров и психологов с многолетним опытом, готовых приехать на дом для первичной детоксикации или принять в стационаре для углублённой терапии. Мы соблюдаем строгие медицинские протоколы и гарантируем безопасность даже в самых тяжёлых случаях.
Выяснить больше – http://narkologicheskaya-klinika-dolgoprudnyj3.ru/anonimnaya-narkologicheskaya-klinika-v-dolgoprudnom/
Каждый пациент получает индивидуально разработанную схему терапии, которая включает комплексное воздействие на организм:
Разобраться лучше – нарколог на дом вывод из запоя
Врачи клиники «ВитаЛайн» для снятия интоксикации и облегчения состояния пациента применяют исключительно качественные и проверенные лекарственные препараты, подбирая их в зависимости от особенностей ситуации и состояния здоровья пациента:
Подробнее – вызов врача нарколога на дом в новосибирске
Обращение за помощью на дому имеет ряд неоспоримых преимуществ, особенно для тех, кто ценит конфиденциальность и стремится избежать дополнительных стрессовых факторов, связанных с посещением клиники:
Узнать больше – https://narcolog-na-dom-ufa00.ru/narkolog-na-dom-kruglosutochno-ufa/
После вашего звонка нарколог выезжает на дом в течение 30–60 минут. Прибыв на место, специалист проводит всесторонний медицинский осмотр, включая измерение артериального давления, пульса и уровня кислорода в крови, а также собирает анамнез для определения степени интоксикации.
Ознакомиться с деталями – https://narcolog-na-dom-voronezh0.ru/narkolog-na-dom-anonimno-voronezh/
Наши специалисты используют проверенные и сертифицированные медикаменты, которые подбираются индивидуально для каждого пациента:
Подробнее можно узнать тут – https://kapelnica-ot-zapoya-nizhniy-novgorod00.ru/kapelnicza-ot-zapoya-na-domu-nizhnij-novgorod/
Современные методы лечения при выводе из запоя включают как медикаментозную детоксикацию, так и психологическую реабилитацию. В Уфе наркологи используют капельничное введение лекарственных средств, которые помогают быстро вывести токсины, нормализовать обмен веществ и стабилизировать работу внутренних органов. Одновременно с этим проводится психологическая поддержка для снижения эмоционального стресса, связанного с запоем.
Подробнее тут – https://narcolog-na-dom-ufa0.ru/narkolog-na-dom-kruglosutochno-ufa
Каждый день запоя увеличивает риск для жизни. Не рискуйте — специалисты в Ростове-На-Дону приедут на дом и окажут экстренную помощь. Без боли, стресса и ожидания.
Дополнительно читайте здесь – вывод из запоя на дому круглосуточно город ростов-на-дону
Первым шагом является детоксикация организма от токсинов, накопившихся вследствие длительного злоупотребления алкоголем. Врач назначает внутривенные капельницы и препараты, способствующие быстрому выведению алкоголя и стабилизации работы внутренних органов. Такой метод позволяет значительно снизить риск осложнений и ускорить процесс восстановления.
Узнать больше – http://narcolog-na-dom-v-irkutske66.ru/vrach-narkolog-na-dom-irkutsk/
Затяжной запой опасен для жизни. Врачи наркологической клиники в Ростове-На-Дону проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Дополнительно читайте здесь – вывод из запоя на дому круглосуточно город ростов-на-дону
Обращение за наркологической помощью на дому требуется в случаях, когда состояние пациента не позволяет ему самостоятельно посетить клинику или есть необходимость в анонимном лечении.
Детальнее – платный нарколог на дом
Lopesan Costa Bavaro Airport Shuttle
The Lopesan Costa Bavaro Airport Shuttle is a private, direct transfer for groups of up to six, ensuring no stops or delays with other passengers.
Distance from Lopesan Costa Bavaro Resort to Punta Cana Airport
How far is Lopesan Costa Bavaro from airport? lopesan costa bavaro to airport The Lopesan Costa Bavaro Resort, Spa & Casino is approximately 10.9 miles (18 km) from Punta Cana International Airport (PUJ). The drive typically takes about 17-30 minutes, depending on traffic conditions.