private static IServiceCollection GetServices(ProgramParameters parameters, IConfiguration configuration) { return(new ServiceCollection() .Configure <SubtitleDownloaderSettings>(configuration) .AddLogging(config => { config.ClearProviders(); config.AddConsole(); config.AddConfiguration(configuration.GetSection("Logging")); }) .AddOpenSubtitlesApiServices() .AddSubtitleDownloaderServices() .AddSingleton(parameters)); }
public static ProgramParameters ReadParameters(string[] args) { var parameters = new ProgramParameters(); try { if (args.Length > 0) { if (args.Length > 1) { if (args[0] == "config") { if (args.Length == 2 && args[1] == "clear") { parameters.ClearUserConfiguration = true; } else if (args.Length == 2 && args[1] == "user") { parameters.ConfigureUser = true; } else if (args.Length == 2 && args[1] == "language") { parameters.ConfigureLanguageFilter = true; } else { parameters.PrintHelp = true; } } else if (args[1] == "download") { parameters.DownloadSpecificSubtitles = true; parameters.MovieFileName = args[0]; parameters.SubtitlesId = args[2]; } else if (args[1] == "list") { parameters.ListSubtitles = true; parameters.MovieFileName = args[0]; } else { parameters.PrintHelp = true; } } else if (args.Length == 1) { if (args[0] == "status") { parameters.ShowStatus = true; } else { parameters.DownloadSubtitles = true; parameters.MovieFileName = args[0]; } } else { parameters.PrintHelp = true; } } else { parameters.PrintHelp = true; } } catch { parameters.PrintHelp = true; } return(parameters); }