private static void Main() { // initial loading drinks list from file var loader = new DrinkLoader(); var drinksListGlobal = loader.InitializeDrinksFromFile(); var exitProgram = false; do { var menu = new Menu(); menu.Show(); var choice = menu.GetUserChoice(); switch (choice) { case MenuChoice.FindByName: SearchDrinkConsoleUi.StartSearch(drinksListGlobal, SearchCriterion.Name); break; case MenuChoice.FindByAlcoholContent: SearchDrinkConsoleUi.HandleSearchDrinksByContentInConsole(drinksListGlobal); break; case MenuChoice.FindByIngredient: SearchDrinkConsoleUi.StartSearch(drinksListGlobal, SearchCriterion.Ingredients); break; case MenuChoice.ShowReviewedDrinksList: SearchDrinkConsoleUi.ShowReviewedDrinksHandler(drinksListGlobal); break; case MenuChoice.AddCustomDrink: SearchDrinkConsoleUi.StartCustomDrinkCreation(drinksListGlobal); break; case MenuChoice.UpdateDrinksFromFile: SearchDrinkConsoleUi.AddMoreDrinksFromFile(drinksListGlobal); break; case MenuChoice.DisplayFavourites: FavouritesService.Display(); break; case MenuChoice.Exit: exitProgram = true; break; default: throw new ArgumentOutOfRangeException(); } } while (exitProgram == false); }
public TestWithSqlite() { _connection = new SqliteConnection(InMemoryConnectionString); _connection.Open(); var options = new DbContextOptionsBuilder <DrinkAppContext>() .UseSqlite(_connection) .Options; Context = new DrinkAppContext(options); Context.Database.EnsureCreated(); var data = new DrinkLoader().InitializeDrinksFromFile(); // Add drinks to the database Context.AddRange(data); Context.SaveChanges(); Repository = new DrinkRepository(Context); }
public static void SeedData(DrinkAppContext context) { // Check if we can connect to the database if (!context.Database.CanConnect()) { // Create the database context.Database.Migrate(); } // Check if we have data in the database if (!context.Drinks.Any()) { // Load drinks from json file var data = new DrinkLoader().InitializeDrinksFromFile(); // Add drinks to the database context.AddRange(data); context.SaveChanges(); } if (!context.Settings.Any()) { var settings = new List <Setting> { new Setting { Name = "Next report date", Value = null, DisallowManualChange = true, Description = "Date and time when the next report will be sent." }, new Setting { Name = "Last report date", Value = null, DisallowManualChange = true, Description = "Date and time when the last report was sent." }, new Setting { Name = "Report interval type", Value = IntervalTypes.Days.ToString(), Description = "Interval type: days or hours.", FrontEndElementType = "select", AvailableOptions = "Days,Hours" }, new Setting { Name = "Report interval", Value = "1", Description = "How often to send the report." }, new Setting { Name = "Report time", Value = "00:00:00", Description = "Time at which the report should be sent." } }; // Add settings to the database context.AddRange(settings); context.SaveChanges(); } }