Тёмный

Admin Endpoints in WebAPI - A TimCo Retail Manager Video 

IAmTimCorey
Подписаться 416 тыс.
Просмотров 14 тыс.
50% 1

In this video, we are going to be adding the API endpoints to support an administrative interface for tasks such as adding inventory and reviewing sales.
** TimCo source code now at: www.iamtimcorey.com/courses/b...
Full Courses: www.iamtimcorey.com
Mailing List: signup.iamtimcorey.com/
One-off tutorials are awesome but they aren't the only thing you should be doing to learn C#. Another vital part of learning is learning how to put it all together. This interactive course is all about putting the pieces together. You can watch each video on its own or you can watch them in order and see a bigger picture. The choice is yours.
This course focuses on real-world development. As such, we are simulating that we work for TimCo Enterprise Solutions on a brand new product, the TimCo Retail Manager. Just like in the real world, we are starting out with one set of requirements but know that over time they will change.

Опубликовано:

 

16 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 63   
@kendavid7082
@kendavid7082 4 года назад
I just wanted to echo other comments here - Thanks Tim for your channel and the quality content you provide!
@IAmTimCorey
@IAmTimCorey 4 года назад
You are most welcome. Thanks for watching.
@dinotom1
@dinotom1 4 года назад
Ditto!
@ahmadnab9771
@ahmadnab9771 4 года назад
I've been searching for C# training for a long time and didn't find such valuable content like yours (not even close). I think you perfectly achieved your goal by making C# easier to learn Best luck and keep forward.
@IAmTimCorey
@IAmTimCorey 4 года назад
I appreciate the kind words and I'm glad you have found my content to be so valuable.
@harag9
@harag9 4 года назад
Yet even more quality work from you Tim, thanks! Looking forward to the next one for the roles!
@IAmTimCorey
@IAmTimCorey 4 года назад
Thank you!
@erikvolger5631
@erikvolger5631 2 года назад
Aren't these videos a lot of fun! I went to the first video in the series and coded along. Then I clean up my code because I like to code and name differently and then I need more work to get it running again. And then there are the comments with many useful suggestions and improvements. So a 40 minute video can keep me busy for hours... Best c# tutorial online I think.
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 2 года назад
Thanks for being a great example of doing the practice time that real learning often requires.
@rajnhard
@rajnhard 4 года назад
I love this real life examples. Nothing teaches you better, than real life examples...by the end of the day, this is what we all do. Please Tim, keep doing these videos.
@IAmTimCorey
@IAmTimCorey 4 года назад
Thank you!
@Mhofts
@Mhofts 4 года назад
Tim - I've been in software development for many years and this is by far the best learning lab I've come across. I've enjoyed this series as it represents how development works in the field (dealing with older technology, requirements changing, etc). I'm migrating parts of a large scale winforms application to .Net Core/API's and have found this series to be an extremely helpful resource. Great job!
@IAmTimCorey
@IAmTimCorey 4 года назад
Great to hear!
@Thunderbuck
@Thunderbuck 2 года назад
I had to step away from this course for a bit but I'm glad this was my re-entry point; this session did a lot to clarify just how the endpoints are configured. Thanks yet again!
@IAmTimCorey
@IAmTimCorey 2 года назад
Awesome! I am glad it was helpful.
@stinefelt
@stinefelt 3 года назад
Wonderful, and very enjoyable. Getting so much out of this it's awesome.
@IAmTimCorey
@IAmTimCorey 3 года назад
Thanks
@mohamaddjelouah9332
@mohamaddjelouah9332 4 года назад
my respect to you force to hit that like and thanking you (thank u) before i watch a single second
@IAmTimCorey
@IAmTimCorey 4 года назад
I appreciate it.
@timothywestern6488
@timothywestern6488 4 года назад
Finally caught up with you Tim. Going to let this one sit a few days. Been wanting to apply some of this on a side project I've been cooking.
@IAmTimCorey
@IAmTimCorey 4 года назад
Great!
@kamiljakubowski2357
@kamiljakubowski2357 4 года назад
Good work like always Tim :D Keep it up !!!
@IAmTimCorey
@IAmTimCorey 4 года назад
Thanks!
@ale-cx8vp
@ale-cx8vp 4 года назад
From my viewpoint, it would be nice to include the related product data in the get call for inventory. Your videos are being of great help to me. I'm glad that you are doing such a great job
@IAmTimCorey
@IAmTimCorey 4 года назад
Thanks for the suggestion and kind words.
@StudentCompanion
@StudentCompanion 4 года назад
Thanks
@IAmTimCorey
@IAmTimCorey 4 года назад
You are welcome.
@namekflores4055
@namekflores4055 3 года назад
thanks for this tutorial, i just have few questions , how do I make the datagrid reusable? my data grid currently binded to a full property(List). I want to display other list of model. another question is how do i pass an inner join table to the data grid? do I need to make every model for each inner join? thank you please keep making these videos it helps alot.💗💗💗
@hamidrezaashkiyan
@hamidrezaashkiyan 4 года назад
Thank you very much for things you taught us. It would be great if you use thread, task, dispather and async in these series. Multithreading i mean.
@IAmTimCorey
@IAmTimCorey 4 года назад
I will be using Async (actually, I think I already have but I can't remember). As for manually controlling threads, I doubt I will be doing that. Using Async/Await handles most, if not all of our threading needs without the complexity of manually controlling threads.
@dmytrohryshyn
@dmytrohryshyn 3 года назад
Thank you for good lessons. I have a question, when ever we are calling SQLDataAccess for the instance of object we passing stored procedure, anonymous object, and connection string as a parameters to a function LoadData(). But there is a potential place to do typos. My question is if can introduce private or internal static class with predefined properties which holds stored procedures respectively, it will reduce chance to introduce typos and we can reuse it multiple times.
@alfonsdeda8912
@alfonsdeda8912 Год назад
Hi Tim, thank you for your efforts. If I want to use a repository service layer instead of, for example InventoryData, should I create a InventoryService with injected InventoryRepository? Is a good way to go? Thanks in advance.
@krisculin9679
@krisculin9679 4 года назад
Enjoying the videos in this series. Have a question...should you create constants for the strings you are hard-coding? If you were to adjust the name of a stored procedure, you could have to modify multiple files. With constants, you change one spot and that's it. It would also prevent any typos that might occur since you'd be using a constant.
@IAmTimCorey
@IAmTimCorey 4 года назад
I could, but since I typically only call a stored procedure once or twice in code, it would result in a lot of constants that aren't being used over again. Plus, if I put them in a central location, I would end up making my code more complex without much added benefit.
@timothywestern6488
@timothywestern6488 4 года назад
If you were like me, and had User EmailAddress field in the User Table as User, and User Lookup stored procedure returning Email As EmailAddress, yeah... discovered I had to add an [u].Email as EmailAddress or go back and change that.
@IAmTimCorey
@IAmTimCorey 4 года назад
Yep, thanks for sharing.
@DamianWalczak
@DamianWalczak 4 года назад
Hey Tim, We all know Your opinion about EntityFramework and Dapper but will you ever consider EFCORE tutorial ?
@IAmTimCorey
@IAmTimCorey 4 года назад
Yes, I am considering an EFCore tutorial.
@Marko-the-Beast-Master
@Marko-the-Beast-Master 2 года назад
I don't see any admin controller in this video?
@Eurowebok
@Eurowebok 4 года назад
Great work Tim!! But i have a little trouble.When i am calling Get in Inventory, i am having an error System.Data.DataException: 'Error parsing column 4 (PurchaseDate=03.09.2019 14:22:09 +00:00 - Object)'----InvalidCastException: Object must implement IConvertible. My InventoryModel looks the same as yours and StoreProcedure too.
@IAmTimCorey
@IAmTimCorey 4 года назад
OK, so SQL and Dapper are having a hard time translating date formats between the two of them. You may have to specify what the format is coming out so that Dapper can read it (or you can specify how to parse the date in Dapper).
@Eurowebok
@Eurowebok 4 года назад
Thanks ,i've fixed that)
@thegodtwon40
@thegodtwon40 4 года назад
I think it would be useful to show the product name along with all the other information
@IAmTimCorey
@IAmTimCorey 4 года назад
Thanks for the input.
@dionkllokoqi6981
@dionkllokoqi6981 3 года назад
Weirdly, the insert when executing spInventory_Insert throws " 'Cannot insert the value NULL into column 'Id', table 'TRMData.dbo.Inventory' ". Code seems to be the same.
@dionkllokoqi6981
@dionkllokoqi6981 3 года назад
Solved it. Seems like my id property in the dbo table wasn't set to be an identity element. Just go to properties of id row, and set Identity Specification to True.
@IAmTimCorey
@IAmTimCorey 3 года назад
Yep, that's the solution. Id has to be auto-incrementing in order to avoid this error.
@efimov90
@efimov90 4 года назад
@IAmTimCorey, not sure it's actual, but this thing with unnecessary empty object can be fixed by method that don't accept it with different signature and without second template type?
@IAmTimCorey
@IAmTimCorey 4 года назад
Can you give me a time code for what you are referring to?
@efimov90
@efimov90 4 года назад
@@IAmTimCorey sure, sorry, i forget that it's at 19:35
@erikvolger5631
@erikvolger5631 2 года назад
Сергей, I tried to do that and it works, but only after I refactored the connectionStringName out of the load/save functions (put it in the constructor) Then the parameters can be otional...
@efimov90
@efimov90 2 года назад
@@erikvolger5631 for sure that works too, and as alternative - you can make all of this optional and use it with named parameters or make it fluent.
@elchureee
@elchureee 4 года назад
Hi! Could you tell me what you say at 14:19? The caption says "who this person is, instead of a gooood....". I don't know what 'gooood' is and I've seen it before in this series. Thanks!
@IAmTimCorey
@IAmTimCorey 4 года назад
GUID. It is the unique identifier that looks something like this: 11594c47-a580-4d2b-b200-cbd021a076e8
@elchureee
@elchureee 4 года назад
@@IAmTimCorey Now that makes sense. Thanks!
@roycelithgo3968
@roycelithgo3968 4 года назад
Something that's troubling me about your table design. Your Inventory table should be called Purchases. Your Product table should be split - the actual Product table shouldn't have QuantityInStock (stock quantities belong on an Inventory table). Then you'd have an Inventory table with ProductId & QuantityInStock. In a bigger system you might be tracking other Quantity columns against your 'Inventory' and they would be added to this table.
@IAmTimCorey
@IAmTimCorey 4 года назад
Inventory is what we bring in, Products are what we offer. We put the QuantityInStock in the Products table because we are going to need to know that number for the front-end (a lot). However, it is a calculated number and not one we rely on. It is a "close approximation". The actual number is from the inventory brought in minus the products sold. We couldn't store that somewhere else and have it have any more meaning. Quantity is always an approximation. There is loss, miscounts, canceled transactions, and more that can have a negative impact on that number. However, we can recalculate it whenever we want (eventually every night using an Azure Function). I don't see your design adding any value. It will actually just slow down our querying but not provide any additional accuracy. That's why I chose this design.
@feitan8745
@feitan8745 4 года назад
Dude *-*
@IAmTimCorey
@IAmTimCorey 4 года назад
Yes?
@feitan8745
@feitan8745 4 года назад
​@@IAmTimCorey Nothing to worry about, just thinking how far you reached with these amazing series and how your videos always gets an earlier dislike.
@dmitrij34
@dmitrij34 4 года назад
@@IAmTimCorey TBH, from thumbnail and the beginning I've expected that you'll actually implement role restrictions in this video. But still thanks for the tutorial
@IAmTimCorey
@IAmTimCorey 4 года назад
Yeah, sorry, it is hard to summarize the lesson in a couple words. We are going to be covering role restrictions in the next video. @Feitan - some people just dislike it and that's ok. It actually boosts my rating when they do that (not that I prefer a dislike).
@harag9
@harag9 4 года назад
@@IAmTimCorey Don't worry I always like them back up for you...
Далее
Adding Roles to the API - A TimCo Retail Manager Video
36:44
меня не было 9 дней
12:48
Просмотров 2,1 млн
Дьявол - ТРЕШ ОБЗОР на фильм
19:10
Cool Tech You’ll LOVE!
21:41
Просмотров 72 тыс.
Google Data Center 360° Tour
8:29
Просмотров 5 млн
Getting User Data - A TimCo Retail Manager Video
1:13:38
Don't Use Polly in .NET Directly. Use this instead!
14:58
меня не было 9 дней
12:48
Просмотров 2,1 млн