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.







































Вывод из запоя на дому в Санкт-Петербурге с выездом нарколога, детоксикацией и восстановлением состояния в наркологической клинике «Частный медик 24»
Детальнее – анонимный вывод из запоя на дому
Клиника создана как современное пространство для безопасного восстановления. Здесь пациенты получают комплексную помощь в комфортных условиях. Основные преимущества учреждения:
Получить больше информации – наркологическая клиника клиника помощь
https://technologiest.org/how-german-proxies-help-you-access-region-restricted-content/
Главный принцип работы наркологической клиники — это последовательность, безопасность и уважение к каждому пациенту. Независимо от степени зависимости, лечение строится на тщательной диагностике, определении индивидуальных особенностей и поэтапном подходе. Медицинская помощь оказывается как в условиях стационара, так и на дому, где врачи могут провести детоксикацию, стабилизировать состояние и составить дальнейший план терапии.
Выяснить больше – платная наркологическая клиника в ростове-на-дону
В таких ситуациях врач оценивает риски, определяет тактику лечения и при необходимости рекомендует дальнейшую госпитализацию. Однако во многих случаях помощь на дому оказывается достаточной для стабилизации состояния.
Подробнее – врач нарколог на дом
Каждый метод выбирается строго по показаниям. При необходимости врачи комбинируют медикаментозное лечение с психотерапией, физиопроцедурами и восстановительными программами. Это обеспечивает максимальную эффективность и безопасность терапии.
Детальнее – наркологическая клиника стационар хабаровск
Лечение запойного состояния строится на сочетании детоксикационных и поддерживающих мероприятий. Основная задача терапии заключается в снижении концентрации токсинов и восстановлении нарушенных регуляторных механизмов. При этом особое внимание уделяется сохранению стабильности внутренних систем организма.
Подробнее можно узнать тут – вывод из запоя капельница
Easy Canada Meds Easy Canada Meds Easy Canada Meds
Нарколог на дом в Екатеринбурге: выезд врача на дом, лечение запоя и консультации в наркологической клинике «НЕО+».
Изучить вопрос глубже – вызвать нарколога на дом в екатеринбурге
Такие состояния требуют медицинского вмешательства, поскольку могут ухудшаться без лечения. Капельница позволяет стабилизировать состояние и снизить нагрузку на организм. Услуги могут предоставляться анонимно, а при тяжёлых случаях рассматривается лечение в стационаре.
Ознакомиться с деталями – капельница от похмелья на дому в воронеже
https://easyindiameds.com/# world pharmacy india
For hottest news you have to pay a visit world-wide-web and on web I found this web page as a best site for hottest updates.
sweepstakes casinos
В Нижнем Новгороде услуга выезда нарколога чаще всего используется при состояниях, когда пациент физически не может посетить клинику или требуется срочное медицинское вмешательство. Врач приезжает с необходимыми препаратами и оборудованием, проводит осмотр и сразу приступает к лечению. Такой формат особенно важен при выраженной интоксикации и нестабильном состоянии.
Получить дополнительные сведения – http://www.domen.ru
Hi i am kavin, its my first time to commenting anyplace, when i read this piece of writing i thought i could also create comment due to this sensible piece of writing.
list of sweepstakes casinos usa
Затяжной запой — это не бытовая слабость, а медицинское состояние, требующее профессионального лечения в условиях стационара. Когда организм истощен длительной интоксикацией, нарушен сон, отсутствует аппетит, а попытки самостоятельно прекратить употребление сопровождаются тремором, тревогой и скачками давления, единственным безопасным решением становится контролируемая детоксикация. Наркологическая клиника «Элегия Мед» в Санкт-Петербурге предоставляет профессиональное лечение с применением сертифицированных протоколов, непрерывный контроль состояния пациента и индивидуальный подбор медикаментозной поддержки. Мы работаем круглосуточно, обеспечивая быстрое реагирование на обращения, четкую диагностику при поступлении и прозрачное взаимодействие с родственниками. Все процедуры выполняются с соблюдением протоколов доказательной медицины, стандартов Минздрава РФ и строгих правил конфиденциальности. Первичная оценка состояния начинается с дистанционной консультации, что позволяет врачам заранее подготовить необходимое оборудование и скорректировать план госпитализации еще до прибытия пациента. При необходимости заказать консультацию или оформить выезд бригады, доступные способы связи включают телефон, мессенджеры и онлайн-форму на сайте.
Подробнее тут – наркология вывод из запоя в стационаре в санкт-петербурге
Ниже представлена таблица с ключевыми направлениями терапии, применяемыми в клинике, и их особенностями.
Получить дополнительную информацию – лечение в наркологической клинике
Полученные данные формируют основу для выбора лечебной тактики и определения оптимального формата помощи.
Исследовать вопрос подробнее – https://narkologicheskaya-klinika-v-tolyatti0.ru/narkologicheskaya-bolnicza-tolyatti/
Все препараты, применяемые при выезде, сертифицированы и подобраны с учётом общего состояния пациента, наличия хронических заболеваний и степени алкогольной интоксикации. Такой подход обеспечивает безопасность процедуры и предсказуемый результат уже в первые часы терапии.
Выяснить больше – нарколог капельница на дом
Someone in the chat called Dragon Hatch 2 “the only honest one” — half joking, half not.
Лечение запойного состояния строится на сочетании детоксикационных и поддерживающих мероприятий. Основная задача терапии заключается в снижении концентрации токсинов и восстановлении нарушенных регуляторных механизмов. При этом особое внимание уделяется сохранению стабильности внутренних систем организма.
Получить больше информации – https://vyvod-iz-zapoya-khabarovsk0.ru/vyvod-iz-zapoya-v-staczionare-khabarovsk/
Today, I went to the beach with my children. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is totally off topic but I had to tell someone!
canadian drugs pharmacy: Easy Canada Meds – Easy Canada Meds
Затяжной запой — это не бытовая слабость, а медицинское состояние, требующее профессионального вмешательства. Когда организм истощен длительной интоксикацией, нарушен сон, отсутствует аппетит, а попытки самостоятельно прекратить употребление сопровождаются тремором, тревогой и скачками давления, единственным безопасным решением становится стационарная детоксикация. Наркологическая клиника «Элегия Мед» в Санкт-Петербурге предоставляет безопасную детоксикацию, индивидуальную медикаментозную терапию и всестороннюю поддержку специалистов на всех этапах восстановления. Мы работаем круглосуточно, обеспечивая быстрое реагирование на обращения, четкую диагностику при поступлении и прозрачное взаимодействие с родственниками. Все процедуры выполняются с соблюдением протоколов доказательной медицины, стандартов Минздрава РФ и строгих правил конфиденциальности. Первичная оценка состояния начинается с дистанционной консультации, что позволяет врачам заранее подготовить необходимое оборудование и скорректировать план госпитализации еще до прибытия пациента. При необходимости позвонить на горячую линию или оформить вызов бригады, помощь доступна в любое время суток.
Исследовать вопрос подробнее – вывод из запоя в стационаре в санкт-петербурге
Your means of telling all in this post is actually pleasant, every one can without difficulty know it, Thanks a lot.
We stumbled over here different web page and thought I might as well check things out. I like what I see so now i’m following you. Look forward to going over your web page repeatedly.
Детоксикация — это медицинская стабилизация при интоксикации и тяжёлой отмене. Она помогает снизить нагрузку на организм, скорректировать обезвоживание и водно-электролитные нарушения, уменьшить выраженность тремора, потливости, тошноты, стабилизировать давление и пульс, снизить тревогу и восстановить сон. Но важно понимать границы результата: после длительного запоя организм не восстанавливается мгновенно, слабость и эмоциональная неустойчивость могут сохраняться в первые сутки.
Подробнее можно узнать тут – https://narkologicheskaya-klinika-orekhovo-zuevo12.ru/narkologicheskaya-klinika-sajt-v-orekhovo-zuevo/
Такой подход позволяет врачу контролировать каждый шаг процесса, фиксировать динамику и при необходимости корректировать терапию. Постоянное наблюдение и своевременная поддержка делают лечение эффективным и безопасным для пациента.
Подробнее можно узнать тут – narkologicheskaya-klinika-tolyatti0.ru/
Помощь на дому рассматривают при состояниях, которые сопровождаются заметным ухудшением самочувствия после алкоголя. Это может быть запой на протяжении нескольких дней, тяжелое похмелье, дрожь в руках, нарушение сна, выраженная слабость, тревога, тошнота, сухость во рту, снижение аппетита и признаки обезвоживания. В таких случаях осмотр врача нужен для того, чтобы оценить тяжесть состояния и понять, безопасно ли оставаться дома.
Подробнее можно узнать тут – нарколог на дом в москве
Your article helped me a lot, is there any more related content? Thanks! https://www.binance.info/register?ref=IHJUI7TF
未来世界黑客争斗,科技边缘的道德难题,黑客
Please let me know if you’re looking for a author for your weblog. You have some really great articles and I believe I would be a good asset. If you ever want to take some of the load off, I’d really like to write some articles for your blog in exchange for a link back to mine. Please blast me an e-mail if interested. Many thanks!
This is really interesting, You are a very skilled blogger. I’ve joined your feed and look forward to seeking more of your magnificent post. Also, I have shared your site in my social networks!
путин пидорас
http://easycanadameds.com/# canadapharmacyonline legit
Качественная наркологическая помощь строится от безопасности к устойчивости. Сначала врач оценивает состояние: длительность употребления, выраженность интоксикации и отмены, давление и пульс, признаки обезвоживания, характер сна, уровень тревоги, наличие хронических заболеваний и препаратов, которые уже принимались дома. Затем выбирается формат лечения — стационарный, амбулаторный или выездной — исходя из рисков, а не из удобства. Это принципиально: при нестабильных показателях и высокой вероятности осложнений требуется более высокий уровень контроля.
Углубиться в тему – http://narkologicheskaya-klinika-sergiev-posad12.ru
Hi there! This post couldn’t be written any better! Reading through this post reminds me of my old room mate! He always kept chatting about this. I will forward this write-up to him. Pretty sure he will have a good read. Thank you for sharing!
Easy Canada Meds: Easy Canada Meds – canadian pharmacy india
What i don’t understood is in truth how you are not actually much more well-liked than you might be right now. You’re very intelligent. You recognize thus significantly when it comes to this matter, made me for my part imagine it from a lot of varied angles. Its like men and women aren’t involved unless it’s one thing to accomplish with Girl gaga! Your own stuffs nice. Always care for it up!
I think the admin of this web page is genuinely working hard for his web page, since here every stuff is quality based stuff.
I do not know whether it’s just me or if everyone else encountering issues with your blog. It appears as if some of the text in your content are running off the screen. Can somebody else please comment and let me know if this is happening to them too? This might be a issue with my web browser because I’ve had this happen before. Many thanks
Spot on with this write-up, I seriously believe this amazing site needs a great deal more attention. I’ll probably be back again to see more, thanks for the info!
Hi! I’m at work browsing your blog from my new iphone 4! Just wanted to say I love reading through your blog and look forward to all your posts! Carry on the fantastic work!
kasiino tervitusboonus
Wow! After all I got a webpage from where I be able to really get helpful information regarding my study and knowledge.
best india pharmacy: india pharmacy – pharmacy no prescription required
Hello everyone, it’s my first visit at this site, and paragraph is in fact fruitful in favor of me, keep up posting such content.
Tips very well applied!. https://blender.community/joycepreston/
Процедура вывода из запоя на дому включает несколько ключевых этапов, которые обеспечивают максимально быстрое и безопасное восстановление пациента. Эти этапы тщательно контролируются врачом, что минимизирует риски и помогает достичь наилучших результатов.
Получить дополнительные сведения – вывод из запоя на дому анонимно екатеринбург
Качественная наркологическая помощь строится от безопасности к устойчивости. Сначала врач оценивает состояние: длительность употребления, выраженность интоксикации и отмены, давление и пульс, признаки обезвоживания, характер сна, уровень тревоги, наличие хронических заболеваний и препаратов, которые уже принимались дома. Затем выбирается формат лечения — стационарный, амбулаторный или выездной — исходя из рисков, а не из удобства. Это принципиально: при нестабильных показателях и высокой вероятности осложнений требуется более высокий уровень контроля.
Подробнее – https://narkologicheskaya-klinika-sergiev-posad12.ru/platnaya-narkologicheskaya-klinika-v-sergievom-posade/
you’re in point of fact a excellent webmaster. The website loading velocity is amazing. It seems that you are doing any unique trick. Moreover, The contents are masterwork. you have done a wonderful job on this subject!
Когда зависимость начинает управлять распорядком и решениями, важно получить помощь, которая строится на медицинской оценке, а не на общих обещаниях. В условиях мегаполиса люди часто тянут до последнего: пытаются «перетерпеть», закрывают симптомы таблетками, откладывают визит из-за работы и семьи. В итоге острый период только усиливается: растут тревога и бессонница, скачет давление, появляется тремор, нарушается дыхание, усиливаются панические реакции. Наркологическая клиника нужна не для формальности, а для того, чтобы снять непосредственные риски и затем выстроить план лечения зависимости так, чтобы не возвращаться к той же точке через несколько дней или недель. В клинике «Свет Баланса» акцент делается на двух вещах: безопасность в остром состоянии и понятная дорожная карта восстановления после стабилизации.
Получить дополнительные сведения – narkologicheskaya-klinika
Hey! This is my 1st comment here so I just wanted to give a quick shout out and tell you I genuinely enjoy reading your blog posts. Can you suggest any other blogs/websites/forums that cover the same topics? Thanks a ton!