public Form_Main(HDCDbContext _hDCDbContext , Ticker _theTicker , BackendLogic _dayCareBackEndAccess) { InitializeComponent(); theArgs = new TickerArgs(); hDCDbContext = _hDCDbContext; theTicker = _theTicker; dayCareBackEndAccess = _dayCareBackEndAccess; this.label1.Text = ""; this.label2.Text = ""; this.SimulationFinishedEvent += button_Show_EndReport_VisibleChanged; this.mainReportTypes = $"INFO TYPE\n\n" + $"Simulation ID:\n\n" + $"Simulation started at:\n" + $"Simulation time now:\n" + $"Tick number now:\n\n" + $"Number of Hamdters in Cleintele this simulation:\n" + $"Capacity of daycare:\n" + $"The Hamster gender distribution is:\n\n" + $"AVG Wait for first Exersice:\n" + $"Number of Cages:\n" + $"Capacity of each Cage:\n\n" + $"Number of Exersice Areas:\n" + $"Capacity of each Exersice Area:\n"; this.MainReport_Test_Types.Text = "Main Report Window"; }
static void Main() { Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // creates a new custom EF dbConteqt hDCDbContext = new HDCDbContext(); // if there are no db in system one will be created in SQLEXPERSS hDCDbContext.Database.EnsureCreated(); // theArgs are the info engine in the backend, it is an info carrier // supplies info to various parts ot thr program and is ofthen updated theArgs = new TickerArgs(); // Is the same idea as theArgs but in the UI part of the program // carries info to different parts of UI, used to construct info Raports ReportArgs = new ReportArgs(); // is the more literal engine, drives the program ittration and drives the simulation theTicker = new Ticker(); // Ticker has tick event wich starts each iterration of the simulatin theTicker.tick += StartSimulation; // BackendLogic id the go between UI and backend, here are pretty much // all the methodes used to gather data from backend dayCareBackEndAccessAccess = new BackendLogic(hDCDbContext, theArgs, ReportArgs); // sets theArgs form last saves settings SetArgsFromSettingsFile(); // if Hamsters are empty if (hDCDbContext.Hamsters.Count() == 0) { dayCareBackEndAccessAccess.SeedDB(theArgs); } // creates Main window form Main_Form = new Form_Main(hDCDbContext, theTicker, dayCareBackEndAccessAccess); // Creates separate UIthred to handle all of the forms logic Thread UIThread = new Thread(StartForm); UIThread.Start(); // creates a loop to keep alive main thread untill simulation strts SimulationAwaiter(theTicker); }