I have paid for courses on websites for many things including but not limited to, Python, C#... and this is by far the best. Tim this is really great, thank you for providing this for us because it cuts the learning process down and saves US so much time. Thanks mate.
One potential bug/possibility of data loss that came to mind while fixing the add/remove roles bug: You can remove your own admin privileges as the ONLY ADMIN of the system. That's a big issue, as the system would be without administrations and thus it's not possible to add new admins. (And it doesn't even prompt for confirmation). I would add an (API level) check for the number of admins >= 2 before proceeding with the removal. Also, tip for anyone following along at home: Setting the SQL Databases to the serverless vCore based model can save a lot of money, (Because it has the possibility of automatic pausing (only pay for storage while there is no traffic)). Currently paying ~0,70€/month for the two of them, and since we aren't actually talking with the databases they are pause pretty much all the time.
Hey, Tim. Couple of quick tips for work items you might find cool. While naming conventions are good and all, tags are even better. What's even better is that on boards view you can actually show them on cards, but not only that - you can assign colors to them (i.e. bug is red). On boards you can also create custom styling rules to show off. Works great with tags, but you can also make a rule that checks if title contains "Bug:". You can find both those things in the cogwheel on the board you wish to customize. Another way is to introduce a whole new item type for bugs by making a custom process that inherits from the current one you are using. But this is more like an enterprise thing and will only create confusion on lesser scale. Cheers.
If your Work Items are not auto-associated with the Commits, check your settings in devops. ProjectSettings->Repositories->SelectRepo->Commit mention linking / Commit mention work item resolution Other small issues: I would suggest to use the microsoft, not system nuget packages for the dotnetcore projects (SqlClient) [I so think this is not a huge deal, yet, but it could be in the future] I also reworked my appsettings api port loading in Wpf to use MS.Ext.Configuration, I do think this is the more appropriate way in core. Keep up the good work.
Hey, Tim! I am really enjoying this set of videos so thanks keep up with the great content. I have a short cut for the completion of the work items that will save you some steps. In VS Team Explorer, if you right click, on the work item, in the Work Items list, you have the ability to complete the work item. Saving you from bouncing back and forth to the website.
Hi Tim, quick question about the All Access Pass. if I enroll would I be able to cancel after a few months. what would the process of cancellation be. would I need to contact you directly or is there somewhere in the course page that allows us to directly cancel. thank you for all the work you are doing.
Tax rate fix does not work for me, because i was in another "culture" text style and isValidTaxRate throw an exception. Fixed it with that bit of a code: NumberStyles style = NumberStyles.Number; CultureInfo culture = CultureInfo.CreateSpecificCulture("en-PL"); bool isValidTaxRate = Decimal.TryParse(rateText, style, culture, out decimal output); That brings me a question where i should define that Culture variables? Should i move it to appsettings.json?
Correct, the UI is not requesting the API for the tax rate. Maybe I'm wrong, but I think Tim said he wouldn't go into that right now. He did set up an endpoint for it in this video, so I'm sure it will be fixed later.
I had solved the tax rate issue by defining getTaxRate method inside the salesController class, not in the saleData class. I calculated the tax rate there and sent it to the saveSale method as parameter: _saleData.SaveSale(sale, userId, GetTaxRate()); That means I didnt need to introduce the config file to the saleData class, instead I introduced it in the salescontroller
The issue, though, is that your controller is now in charge of multiple things. I prefer to move my logic out of my controller. Now I have an endpoint that can be called to get the tax rate and yet I don't have the logic in the controller directly. As for introducing the config file to the SaleData class, that isn't an issue.
@@IAmTimCorey I didn't introduce logic in SalesController, just captured the tax rate text. I sent the text to the saveSale method, calculated the decimal taxRate by sending the text to the ConfigHelper. Meaning, I didnot delete the ConfigHelper and kept the logic there
Thanks tim for this useful content, I suggest to add more complicated business logic like a real retail shop, because this is what we are facing on the real world.
Hello Tim, When fixing the taxrate problem, in the appsetting.json you write "TaxRate": 8.75 But if i do that on my machine, it means 875, I have to write "TaxRate": "8,75" That's because of the cultural settings. Is there a way of checking this?
I had the same issue. I remember it took me a while to figure what was going on back when the tax rate calculation was implemented. I also have to have a string of 8,75 i appsettings/appconfig for the tax rate to make it work correctly.
I have paid for courses on websites for many things including but not limited to, Python, C#... and this is by far the best. Tim this is really great, thank you for providing this for us because it cuts the learning process down and saves US so much time.
Thanks mate.
I am glad it has been so helpful.
One potential bug/possibility of data loss that came to mind while fixing the add/remove roles bug:
You can remove your own admin privileges as the ONLY ADMIN of the system.
That's a big issue, as the system would be without administrations and thus it's not possible to add new admins.
(And it doesn't even prompt for confirmation).
I would add an (API level) check for the number of admins >= 2 before proceeding with the removal.
Also, tip for anyone following along at home: Setting the SQL Databases to the serverless vCore based model can save a lot of money, (Because it has the possibility of automatic pausing (only pay for storage while there is no traffic)).
Currently paying ~0,70€/month for the two of them, and since we aren't actually talking with the databases they are pause pretty much all the time.
Thanks for the suggestions.
Hey Tim.
at 4:58, to make the filter go away you can simply click the open filter button again.
Thanks for your content, its really helpfull :)
Hey, that worked! Thanks for sharing! Now I need to go yell at someone for the unintuitive UI. 😆
Hey, Tim.
Couple of quick tips for work items you might find cool.
While naming conventions are good and all, tags are even better. What's even better is that on boards view you can actually show them on cards, but not only that - you can assign colors to them (i.e. bug is red).
On boards you can also create custom styling rules to show off. Works great with tags, but you can also make a rule that checks if title contains "Bug:".
You can find both those things in the cogwheel on the board you wish to customize.
Another way is to introduce a whole new item type for bugs by making a custom process that inherits from the current one you are using. But this is more like an enterprise thing and will only create confusion on lesser scale.
Cheers.
Thanks for sharing. I love tips like this, where we can make things better without making them more complicated. I'll look into implementing this.
If your Work Items are not auto-associated with the Commits, check your settings in devops.
ProjectSettings->Repositories->SelectRepo->Commit mention linking / Commit mention work item resolution
Other small issues:
I would suggest to use the microsoft, not system nuget packages for the dotnetcore projects (SqlClient)
[I so think this is not a huge deal, yet, but it could be in the future]
I also reworked my appsettings api port loading in Wpf to use MS.Ext.Configuration, I do think this is the more appropriate way in core.
Keep up the good work.
Thanks for sharing.
Hey, Tim! I am really enjoying this set of videos so thanks keep up with the great content. I have a short cut for the completion of the work items that will save you some steps. In VS Team Explorer, if you right click, on the work item, in the Work Items list, you have the ability to complete the work item. Saving you from bouncing back and forth to the website.
Thanks for that. I'll give it a shot.
Thanks for another great video Tim
You are welcome.
Hi Tim, What if we keep 'TaxRate' in the database and allow user ability for changing this value through admin page?
Yep, that would be a good refactoring idea.
Hey Tim! Love your content! Any chance the all access pass will be opening soon?
It is open right now through the 17th of May.
Hey Tim! Do you have any tutorials on Xamarin? What do you recommend for mobile app development for 2020?
One is coming soon. I do recommend Xamarin for mobile app development for sure.
Hi Tim, quick question about the All Access Pass. if I enroll would I be able to cancel after a few months. what would the process of cancellation be. would I need to contact you directly or is there somewhere in the course page that allows us to directly cancel. thank you for all the work you are doing.
In your Teachable profile, you can cancel the subscription directly. So yes, you can cancel at any time.
Tax rate fix does not work for me, because i was in another "culture" text style and isValidTaxRate throw an exception. Fixed it with that bit of a code:
NumberStyles style = NumberStyles.Number;
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-PL");
bool isValidTaxRate = Decimal.TryParse(rateText, style, culture, out decimal output);
That brings me a question where i should define that Culture variables? Should i move it to appsettings.json?
You are still calculating taxRate in the DesktopUI.Library.ConfigHelper. Did I miss something?
Correct, the UI is not requesting the API for the tax rate. Maybe I'm wrong, but I think Tim said he wouldn't go into that right now. He did set up an endpoint for it in this video, so I'm sure it will be fixed later.
Hey Tim.. can i request for DDD tutorials.. Domain Driven Design
I will add it to the list. Thanks for the suggestion.
IAmTimCorey yeah thank
I had solved the tax rate issue by defining getTaxRate method inside the salesController class, not in the saleData class. I calculated the tax rate there and sent it to the saveSale method as parameter:
_saleData.SaveSale(sale, userId, GetTaxRate());
That means I didnt need to introduce the config file to the saleData class, instead I introduced it in the salescontroller
The issue, though, is that your controller is now in charge of multiple things. I prefer to move my logic out of my controller. Now I have an endpoint that can be called to get the tax rate and yet I don't have the logic in the controller directly. As for introducing the config file to the SaleData class, that isn't an issue.
@@IAmTimCorey I didn't introduce logic in SalesController, just captured the tax rate text. I sent the text to the saveSale method, calculated the decimal taxRate by sending the text to the ConfigHelper. Meaning, I didnot delete the ConfigHelper and kept the logic there
Do you know Mantis Tim? It's a bug tracker similar of Dev Ops. What do you think about it?
I have not tried it.
Thanks tim for this useful content, I suggest to add more complicated business logic like a real retail shop, because this is what we are facing on the real world.
I will add it to the list. Thanks for the suggestion.
Hey tim can you make a detail vedio on a github library “stateless”
I am not sure what you are asking for. Is Stateless a library on GitHub?
@@IAmTimCorey yes its a lightweight library to replace the windows workflow foundation
@@IAmTimCorey github.com/dotnet-state-machine/stateless
OK, I'll add it to the suggestion list.
Hello Tim,
When fixing the taxrate problem, in the appsetting.json you write "TaxRate": 8.75
But if i do that on my machine, it means 875, I have to write "TaxRate": "8,75"
That's because of the cultural settings. Is there a way of checking this?
I had the same issue. I remember it took me a while to figure what was going on back when the tax rate calculation was implemented. I also have to have a string of 8,75 i appsettings/appconfig for the tax rate to make it work correctly.