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);
            }
        }
Exemple #2
0
 public CentralinoReader(CentralinoConfiguration configuration)
 {
     _host    = new CentralinoHost(configuration.Host, configuration.Port);
     _account = new UserAccount(configuration.Username, configuration.Password);
 }