/// <summary> Fires asynchronously when the page is accessed via the POST HTTP verb. </summary> public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } //TODO: Extract into a method (on DealContext?) Unit.UpdateAuditFields(userId: 1); _context.Unit.Add(Unit); var deal = new Deal(); deal.UpdateAuditFields(userId: 1); var dealUnit = new DealUnit { Deal = deal, Unit = Unit }; deal.DealUnits = new List <DealUnit> { dealUnit }; //TODO: Add a switch or another Action that will handle adding to an existing Deal _context.Deal.Add(deal); _context.DealUnit.Add(dealUnit); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); }
/// <summary> Initializes the DB Context. </summary> /// <param name="context"> The DB Context to initialize. </param> public static void InitializeContext(DealContext context) { context.Database.EnsureCreated(); //* Use during development, then get rid of this in favor of Migrations if (context.Deal.Any()) { return; // DB has been seeded } var units = new Unit[] { new Unit { CustomerName = "Test, Bob", AppraiserName = "Appraiser, Jim", CustomerAddress = "100 Pigkicker Ln", ModelYear = 1999, VIN = "1M3P272K1XM001040" } }; var deals = new Deal[] { new Deal { } }; foreach (var deal in deals) { deal.UpdateAuditFields(1); } foreach (var unit in units) { unit.UpdateAuditFields(1); } var dealUnits = new DealUnit[] { new DealUnit { Deal = deals[0], Unit = units[0] } }; deals[0].DealUnits = dealUnits; context.Unit.AddRange(units); context.Deal.AddRange(deals); context.DealUnit.AddRange(dealUnits); context.SaveChanges(); }