public static Option <CentralinoConfiguration> FromCommanLine(string[] cmdArgs) { try { var cfg = new CentralinoConfiguration(); var options = new OptionSet() .Add("cfg|config-file=", "nome del file di configurazione in cui specificare tutte le opzioni di questo help", v => { cfg = FromXml(v); }) .Add("H|hostname=", $"hostname del centralino server. Default {cfg.Host}", v => cfg.Host = v) .Add("P|port=", $"porta del centralino server. Default {cfg.Port}", v => cfg.Port = ToInt(v)) .Add("u|username="******"username. Default {cfg.Username}", v => cfg.Username = v) .Add("p|password="******"password. Default {cfg.Password}", v => cfg.Password = v) .Add("s|sede=", $"sede di riferimento. Default {cfg.Sede}", v => { Enum.TryParse(v, ignoreCase: true, out SedeEnum sede); cfg.Sede = sede; }) .Add("db=", $"db in uso. Scegliere tra {DbEnum.MySql}|{DbEnum.SqlServer} .Default {cfg.DbConfiguration.Db}", v => { Enum.TryParse(v, ignoreCase: true, out DbEnum dbType); cfg.DbConfiguration.Db = dbType; }) ; options.Add("h|help", "Mostra help", v => { cfg.Show = true; options.WriteOptionDescriptions(Console.Out); }); options.Add("v|version", "Stampa il numero di versione", v => { cfg.Show = true; Console.Out.WriteLine(Assembly.GetExecutingAssembly().GetName().Version); }); options.Parse(cmdArgs); return(cfg.Show ? None : Some(cfg)); } catch (Exception e) { Console.WriteLine(e); return(None); } }
public CentralinoReader(CentralinoConfiguration configuration) { _host = new CentralinoHost(configuration.Host, configuration.Port); _account = new UserAccount(configuration.Username, configuration.Password); }