Files
rockfish/notes/notes.txt
2018-06-28 23:37:38 +00:00

115 lines
4.6 KiB
Plaintext

b43698c255365ee739c05ba0d42855e96c2365c76bb2f9b9eb149cec7b52174c
*********************************************
Updating Microsoft CODE editor
Download the .deb file for 64 bit
execute it
sudo dpkg -i code_1.8.1-1482159060_i386.deb
** UPDATE: As of October 2017 it now updates when you update Debian apt-get update etc
HANDLEBARS
=-=-=-=-=-
Install:
sudo npm install -g handlebars
Build handlebars template:
handlebars -m wwwroot/js/templates/> wwwroot/js/templates/templates.js
3rd party Packages used:
JWT JSON web token support using jose-jwt found here:
https://jwt.io/#libraries
Mailkit (supposedly system.net.mail will be ported in v2.0 of .net core but for now mailkit is the shit):
<!-- NOTE: bouncycastle needed for license gen but mailkit brings a slightly different one in so there is a conflict but just removing bouncycastle works because the license code uses teh mailkit bouncycastle-->
<!--PackageReference Include="bouncycastle.netcore" Version="1.8.1.3" /-->
**************************
//command to scaffold the sqlite db:
dotnet ef dbcontext scaffold "Datasource=/home/john/Documents/rockfishCore/db/rockfish.sqlite" Microsoft.EntityFrameworkCore.Sqlite -o Models -f
//scaffold all controllers with these commands:
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Contact -dc rockfishCore.Models.rockfishContext -name ContactController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Customer -dc rockfishCore.Models.rockfishContext -name CustomerController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Incident -dc rockfishCore.Models.rockfishContext -name IncidentController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.LicenseTemplates -dc rockfishCore.Models.rockfishContext -name LicenseTemplatesController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Notification -dc rockfishCore.Models.rockfishContext -name NotificationController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Purchase -dc rockfishCore.Models.rockfishContext -name PurchaseController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Site -dc rockfishCore.Models.rockfishContext -name SiteController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.Trial -dc rockfishCore.Models.rockfishContext -name TrialController -outDir ./Controllers
dotnet aspnet-codegenerator controller -api -m rockfishCore.Models.User -dc rockfishCore.Models.rockfishContext -name UserController -outDir ./Controllers
Here is the help command for this:
dotnet aspnet-codegenerator controller --help
***********************************
EF CORE STUFF NOTES
To INCLUDE relatives use like this:
var site = await _context.Site
.Include(m=>m.TrialNavigation)
.Include(m=>m.Purchase)
.Include(m=>m.Incident)
.SingleOrDefaultAsync(m => m.Id == id);
=-=-=-=-
EF Core include queries
//ad-hoc:
// var res = from c in _context.Customer.OrderBy(c => c.Name)
// join site in _context.Site.DefaultIfEmpty() on c.Id equals site.CustomerId
// join purchase in _context.Purchase.DefaultIfEmpty() on site.Id equals purchase.SiteId
// where (purchase.CancelDate == null)
// select new infoListCustomer
// {
// active = c.Active,
// id = c.Id,
// name = c.Name,
// siteId = site.Id,
// siteName = site.Name,
// purchaseId = purchase.Id,
// purchaseName = purchase.Name
// };
//Using ef relationships:
// using (var context = new BloggingContext())
// {
// var blogs = context.Blogs
// .Include(blog => blog.Posts)
// .ThenInclude(post => post.Author)
// .ThenInclude(author => author.Photo)
// .Include(blog => blog.Owner)
// .ThenInclude(owner => owner.Photo)
// .ToList();
// }
var res = _context.Customer
.Include(customer => customer.Site)
.ThenInclude(site => site.Purchase)//or...:
//.Include(customer => customer.Purchase)//this also due to reference in EF
.OrderBy(customer => customer.Name);
//.ToList();
var xtest=res.ToList();
var xcount=xtest.Count();