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.







































Комплексный подход включает детоксикацию, психологическую поддержку и восстановление обмена веществ, индивидуальный подход и предотвращение повторных запоев – главные цели
Выяснить больше – вывод из запоя на дому в красноярске
С увеличением темпа жизни и нарастающим стрессом, многие люди в Екатеринбурге сталкиваются с зависимостями, особенно с алкогольной. Алкогольная зависимость является одной из наиболее распространённых проблем, требующих немедленного вмешательства специалистов. Важно помнить, что в сложных ситуациях, связанных с зависимостью, помощь не должна откладываться. Вызов нарколога на дом в Екатеринбурге становится идеальным вариантом для тех, кто не может или не хочет покидать свой дом, но нуждается в медицинской помощи.
Подробнее можно узнать тут – narkolog-na-dom ekaterinburg
Когда организм на пределе, важна срочная помощь в Коломне — это команда опытных наркологов, которые помогут быстро и мягко выйти из запоя без вреда для здоровья.
Узнать больше – врача капельницу от запоя
Основные методы, используемые в клинике, включают медикаментозную детоксикацию, психотерапевтические программы и реабилитационные мероприятия. Медикаментозное выведение токсинов из организма проводится с применением сертифицированных препаратов под строгим контролем врачей. Подробности о методах медикаментозной детоксикации представлены на сайте Министерства здравоохранения РФ.
Получить больше информации – наркологические клиники алкоголизм ростов-на-дону.
При глубокой алкогольной интоксикации запой может привести к серьёзным осложнениям — от обезвоживания и электролитного дисбаланса до острого алкогольного психоза. В Мариуполе клиника «Мариуполь без запоя» предлагает оперативную помощь на дому с выездом нарколога в течение 60 минут и круглосуточную поддержку. Пациент получает комплексное лечение без стресса госпитализации и в условиях полной конфиденциальности.
Углубиться в тему – вывод из запоя вызов город
В клинике применяются комплексные программы, включающие медицинскую детоксикацию, психотерапевтическую поддержку и социальную реабилитацию. Медицинская детоксикация проводится с использованием современных препаратов и методик, что позволяет снизить тяжесть абстинентного синдрома и минимизировать риски для здоровья пациента. Подробнее о методах детоксикации можно узнать на официальном портале Министерства здравоохранения России.
Разобраться лучше – платная наркологическая клиника в челябинске
Вызов нарколога на дом в Челябинске обеспечивает возможность проведения полного обследования и первичной терапии в условиях, привычных для пациента. Специалисты оказывают услуги круглосуточно, что позволяет своевременно купировать острые состояния, связанные с алкогольной интоксикацией, абстинентным синдромом или осложнениями наркозависимости.
Исследовать вопрос подробнее – запой нарколог на дом челябинск
Клиника Частный Медик 24 в Балашихе — профессиональный стационарный вывод из запоя, подробности на сайте.
Изучить материалы по теме – наркологический вывод из запоя в балашихе
Близкий человек в запое? Не ждите ухудшения. Обратитесь в клинику — здесь проведут профессиональный вывод из запоя с последующим восстановлением организма.
Узнать больше – капельница от запоя наркология в коломне
Затяжной запой опасен для жизни. Врачи наркологической клиники в Коломне проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Получить дополнительные сведения – после капельницы от запоя в коломне
Для проживающих в Балашихе: услуга стационарного вывода из запоя от Частного Медика 24 — переходите по ссылке.
Что скрывают от вас? – вывод из запоя в балашихе
Затяжной запой опасен для жизни. Врачи наркологической клиники в Коломне проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Исследовать вопрос подробнее – капельница от запоя цена город. московская область
Судороги возникают из-за резкого исчезновения алкоголя как депрессанта при одновременном возбуждении нейрональных цепей. Без быстрого медицинского вмешательства возможен гипоксический инсульт.
Детальнее – вывод из запоя на дому
Затяжной запой опасен для жизни. Врачи наркологической клиники в Ростове-На-Дону проводят срочный вывод из запоя — на дому или в стационаре. Анонимно, безопасно, круглосуточно.
Углубиться в тему – вывод из запоя на дому ростовская область
Надёжный вывод из запоя в клинике Частный Медик 24 (Балашиха) — полный стационарный курс, смотрите по ссылке.
Углубиться в тему – вывод из запоя в стационаре город балашиха
Каждый пациент проходит предварительное обследование: экспресс-анализ крови на электролиты, биохимия печени и почек, ЭКГ. На основании результатов врач формирует персональную программу инфузионной терапии.
Подробнее тут – капельница от запоя круглосуточно челябинск
Каждый день запоя увеличивает риск для жизни. Не рискуйте — специалисты в Ростове-На-Дону приедут на дом и окажут экстренную помощь. Без боли, стресса и ожидания.
Переходите по ссылке ниже – http://vyvod-iz-zapoya-rostov15.ru
Детоксикация организма, проводимая на дому, помогает очистить кровь от токсинов, накопившихся из-за длительного употребления алкоголя или наркотических веществ. Она проводится с использованием специально подобранных медикаментов, которые улучшают работу печени, почек и других органов.
Углубиться в тему – vrach-narkolog-na-dom krasnojarsk
Близкий человек в запое? Не ждите ухудшения. Обратитесь в клинику — здесь проведут профессиональный вывод из запоя с последующим восстановлением организма.
Не пропусти важное – вывод из запоя на дому
https://ens-newswire.com/
Самостоятельно выйти из запоя — почти невозможно. В Ростове-На-Дону врачи клиники проводят медикаментозный вывод из запоя с круглосуточным выездом. Доверяйте профессионалам.
Слушай внимательно — тут важно – вывод из запоя на дому в ростове-на-дону
Когда речь идет о лечении зависимостей, многие пациенты испытывают стресс от визита в медицинские учреждения, особенно если это касается такой деликатной темы, как алкоголизм. Лечение на дому помогает избежать всех этих трудностей и обеспечивает комфорт для пациента. Привычная домашняя обстановка снижает тревожность, что позитивно влияет на процесс выздоровления.
Получить больше информации – нарколог на дом вывод екатеринбург
Быстрый вывод токсинов – приоритет, современные препараты очищают кровь, восстанавливая нормальный обмен веществ и устраняя последствия длительного употребления
Получить дополнительные сведения – https://vyvod-iz-zapoya-krasnoyarsk66.ru/vyvod-iz-zapoya-klinika-krasnoyarsk/
Врач-нарколог проводит комплексное обследование пациента, оценивая степень зависимости и общее состояние организма. В ходе первичного осмотра специалист не только определяет тяжесть алкогольной зависимости, но и выявляет сопутствующие патологии, которые могут повлиять на процесс лечения. Обследование включает лабораторные анализы, электрокардиограмму и другие необходимые диагностические процедуры. Врач тщательно изучает анамнез для выявления возможных противопоказаний к определенным методам терапии. Особое внимание уделяется психологическим аспектам, которые могли способствовать формированию зависимости, что помогает разработать эффективную программу лечения.
Подробнее тут – срочный вывод из запоя красноярск
В Ростове-На-Дону решение есть — наркологическая клиника. Здесь помогают людям выйти из запоя без страха и осуждения. Всё анонимно, грамотно и с заботой о каждом пациенте.
Это ещё не всё… – вывод из запоя в стационаре город ростов-на-дону
Драгон Мани Dragon Money – это не просто название, это врата в мир безграничных возможностей и захватывающих азартных приключений. Это не просто платформа, это целая вселенная, где переплетаются традиции вековых казино и новейшие цифровые технологии, создавая уникальный опыт для каждого искателя удачи. В современном мире, где финансовые потоки мчатся со скоростью света, Dragon Money предлагает глоток свежего воздуха – пространство, где правила просты, а возможности безграничны. Здесь каждая ставка – это шанс, каждый спин – это предвкушение победы, а каждый выигрыш – это подтверждение вашей удачи. Но Dragon Money – это не только про выигрыши и джекпоты. Это про сообщество единомышленников, объединенных общим стремлением к риску, азарту и адреналину. Это место, где можно найти новых друзей, поделиться опытом и ощутить неповторимый дух товарищества. Мы твердо верим, что безопасность и честность – это фундамент, на котором строится доверие. Именно поэтому Dragon Money уделяет особое внимание защите данных и обеспечению прозрачности каждой транзакции. Мы стремимся создать максимально комфортную и безопасную среду для наших игроков, где каждый может наслаждаться игрой, не беспокоясь о каких-либо рисках. Dragon Money – это не просто игра. Это возможность испытать себя, проверить свою удачу и почувствовать себя настоящим властелином своей судьбы. Присоединяйтесь к нам, и пусть дракон принесет вам богатство, успех и процветание! Да пребудет с вами удача!
Каждый этап лечения тщательно продуман для достижения максимальной безопасности и эффективности:
Изучить вопрос глубже – https://vyvod-iz-zapoya-mariupol13.ru/vyvod-iz-zapoya-kapelnicza-mariupol/
Attractive component to content. I just stumbled upon your web site and in accession capital to claim that I acquire actually enjoyed account your blog posts. Anyway I’ll be subscribing on your feeds and even I fulfillment you access persistently fast.
https://clients1.google.lv/url?sa=t&url=https://premierlimousineservice.net
Подробности можно найти на официальном сайте Министерства здравоохранения РФ, где описаны стандарты оказания наркологической помощи и рекомендации по лечению зависимости Минздрав РФ — наркологическая помощь.
Детальнее – https://narkolog-na-dom-chelyabinsk13.ru
Психотерапевтические программы включают индивидуальные и групповые занятия, направленные на восстановление психологического состояния и формирование мотивации к трезвому образу жизни. Важной частью терапии является работа с родственниками пациента, что способствует укреплению социальной поддержки. Информацию о современных методах психотерапии можно найти на сайте Российской психотерапевтической ассоциации.
Исследовать вопрос подробнее – наркологическая клиника наркологический центр в челябинске
Каждый день запоя увеличивает риск для жизни. Не рискуйте — специалисты в Коломне приедут на дом и окажут экстренную помощь. Без боли, стресса и ожидания.
Подробнее тут – капельница от запоя цена московская область
кайт школа Безопасность – это ключевой аспект кайтсёрфинга. Всегда проверяйте оборудование, следите за прогнозом погоды и не рискуйте в сложных условиях.
Самостоятельно выйти из запоя — почти невозможно. В Ростове-На-Дону врачи клиники проводят медикаментозный вывод из запоя с круглосуточным выездом. Доверяйте профессионалам.
Познакомиться с результатами исследований – наркологический вывод из запоя в ростове-на-дону
Услуга стационарного вывода из запоя от Частного Медика 24 в Балашихе — подробнее на странице предложения.
Посмотреть подробности – вывод из запоя на дому город балашиха
Самостоятельно выйти из запоя — почти невозможно. В Коломне врачи клиники проводят медикаментозный вывод из запоя с круглосуточным выездом. Доверяйте профессионалам.
Получить дополнительные сведения – капельница от запоя выезд
Экстренная помощь при выводе из запоя в Архангельске организована по четко отлаженной схеме. Специалисты проводят комплексное обследование пациента на месте, разрабатывают индивидуальный план терапии и незамедлительно приступают к детоксикации. Такой подход позволяет максимально быстро нейтрализовать токсическую нагрузку и восстановить жизненно важные функции организма.
Подробнее – срочный вывод из запоя архангельск
Запой — это длительный приступ непрерывного употребления алкоголя, когда человек теряет контроль над количеством выпиваемого, что приводит к серьёзному отравлению организма. Нарушение водно-солевого баланса, угнетение центральной нервной системы и риск сердечно-сосудистых осложнений требуют немедленного вмешательства. В Челябинске клиника «ЧелябМед» предлагает круглосуточную неотложную помощь на дому и в условиях стационара, гарантируя полную анонимность и комфорт пациенту.
Исследовать вопрос подробнее – вывод из запоя клиника в челябинске
Услуга стационарного вывода из запоя от Частного Медика 24 в Балашихе — подробнее на странице предложения.
Хочу знать больше – нарколог вывод из запоя город балашиха
Основные методы, используемые в клинике, включают медикаментозную детоксикацию, психотерапевтические программы и реабилитационные мероприятия. Медикаментозное выведение токсинов из организма проводится с применением сертифицированных препаратов под строгим контролем врачей. Подробности о методах медикаментозной детоксикации представлены на сайте Министерства здравоохранения РФ.
Подробнее – narkologicheskaya klinika rostov-na-donu
Кроме того, анонимность является важной составляющей этой услуги. Лечение дома исключает возможность столкновения с посторонними людьми и помогает пациентам сохранить свою репутацию. Клиника «Гармония и Свет» обеспечивает полную конфиденциальность, предоставляя пациентам возможность получать помощь без лишних вопросов и обсуждений.
Разобраться лучше – нарколог на дом вывод
Надёжный вывод из запоя в клинике Частный Медик 24 (Балашиха) — полный стационарный курс, смотрите по ссылке.
Что скрывают от вас? – balashiha
Быстрый вывод токсинов – приоритет, современные препараты очищают кровь, восстанавливая нормальный обмен веществ и устраняя последствия длительного употребления
Углубиться в тему – нарколог на дом вывод из запоя красноярск
Наркологическая клиника «ЧелябДоктор» специализируется на экстренной и плановой детоксикации пациентов с алкогольной зависимостью. Наши главные преимущества:
Углубиться в тему – капельница от запоя анонимно на дому в челябинске
Когда организм на пределе, важна срочная помощь в Ростове-На-Дону — это команда опытных наркологов, которые помогут быстро и мягко выйти из запоя без вреда для здоровья.
Углубиться в тему – ростов-на-дону
Каждый день запоя увеличивает риск для жизни. Не рискуйте — специалисты в Ростове-На-Дону приедут на дом и окажут экстренную помощь. Без боли, стресса и ожидания.
Изучите внимательнее – вывод из запоя недорого город ростов-на-дону
Самостоятельно выйти из запоя — почти невозможно. В Ростове-На-Дону врачи клиники проводят медикаментозный вывод из запоя с круглосуточным выездом. Доверяйте профессионалам.
Получить профессиональную консультацию – http://vyvod-iz-zapoya-rostov15.ru
Услуга вызова нарколога на дом в Красноярске — это удобный и современный способ получения медицинской помощи. Она идеально подходит для тех, кто нуждается в профессиональной поддержке, но по каким-либо причинам не может или не хочет посещать клинику.
Детальнее – выезд нарколога на дом
Без своевременной и адекватной медицинской помощи длительный запой может перерасти в тяжёлую и угрожающую жизни форму алкогольной интоксикации, вызывая каскад серьезных сбоев в работе практически всех систем организма, от сердечно-сосудистой и нервной до пищеварительной и эндокринной, поэтому своевременное обращение к опытным и квалифицированным специалистам даёт реальную возможность предотвратить развитие тяжелых последствий и обеспечить безопасный и эффективный процесс восстановления, начиная с первичной детоксикации и заканчивая долгосрочной реабилитацией.
Получить дополнительную информацию – https://vyvod-iz-zapoya-arkhangelsk6.ru/vyvod-iz-zapoya-klinika-arkhangelsk/
Клиника специализируется на домашней детоксикации и стационарном лечении алкогольной зависимости. Основные направления работы:
Изучить вопрос глубже – нарколог вывод из запоя мариуполь
Каждый день запоя увеличивает риск для жизни. Не рискуйте — специалисты в Коломне приедут на дом и окажут экстренную помощь. Без боли, стресса и ожидания.
Получить дополнительную информацию – врач на дом капельница от запоя в коломне