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);
        }
示例#3
0
 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();
     }
 }