private static void ShowMainWIndow() { IList <Disaster> disasters = new List <Disaster>(); int option = -1; do { Console.Clear(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================"); Console.WriteLine("=== DISASTERS MONITOR ==="); Console.WriteLine("============================================"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("1. Request disaster from Reliefweb"); Console.WriteLine("2. Save disaster to disk"); Console.WriteLine("3. Load disaster from disk"); Console.WriteLine("4. Order disasters by date"); Console.WriteLine("5. Order epidemic disasters by name"); Console.WriteLine("6. Alert disaster"); Console.WriteLine("0. Exit"); Console.WriteLine(); ConsoleKeyInfo key = Console.ReadKey(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("Wait a sec please!..."); Console.ForegroundColor = ConsoleColor.White; if (Int32.TryParse(key.KeyChar.ToString(), out option)) { DisasterInfoProvider disasterInfoProvider = option == 1 ? DisasterInfoProvider.Reliefweb : option == 3 ? DisasterInfoProvider.FileSystem : DisasterInfoProvider.None; switch (option) { case 1: case 3: disasters = RequestDisasters(disasterInfoProvider); break; case 2: PersistDisasters(disasters); break; case 4: OrderDisasters(disasters); break; case 5: OrderEpidemicDisastersByName(disasters); break; case 6: AlertDisaster(disasters); break; } } } while (option != 0); }
private static IList <Disaster> RequestDisasters(DisasterInfoProvider disasterInfoProvider) { IList <Disaster> disasters; using (IDisasterInfoProvider provider = container.GetInstance <IServicesFabric>().CreateDisasterInfoProvider(disasterInfoProvider)) { disasters = provider.RequestDisasters(_supportedDisasterTypes); } ShowDisasters(disasters); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("Press any key to continue"); Console.ReadKey(); return(disasters); }
public IDisasterInfoProvider CreateDisasterInfoProvider(DisasterInfoProvider provider) { IDisasterInfoProvider result; if (provider == DisasterInfoProvider.Reliefweb) { result = _container.GetInstance <ReliefwebServiceProvider>(); } else if (provider == DisasterInfoProvider.FileSystem) { result = _container.GetInstance <FileSystemServiceProvider>(); } else { throw new InvalidOperationException("Cannot create a provider for " + provider.ToString()); } return(result); }