/// <summary> /// Sets default db credentials /// </summary> protected virtual void SetDefaultDsc() { try { var cfg = Cartomatic.Utils.NetCoreConfig.GetNetCoreConfig(); var dsc = new DataSourceCredentials(); cfg.GetSection("Dsc").Bind(dsc); //if could not read, this should be default if (dsc.DataSourceProvider == DataSourceProvider.Unknown) { throw new Exception(); } Dsc = dsc; PrintDbc(); } catch { ConsoleEx.WriteLine("Default db credentials are not configured. Is this intentional?", ConsoleColor.DarkRed); Console.WriteLine(); } }
/// <summary> /// handles setting db credentials /// </summary> /// <param name="args"></param> protected virtual void Handle_Dsc(Dictionary <string, string> args) { var cmd = GetCallerName(); PrintCommand("mh.core.cmd", cmd, args); if (GetHelp(args)) { Console.WriteLine($"'{cmd}' : prints or sets db connection details for default connection"); Console.WriteLine($"syntax: {cmd} space separated params: "); Console.WriteLine("\t[h:serverhost]"); Console.WriteLine("\t[n:servername]"); Console.WriteLine("\t[p:serverport]"); Console.WriteLine("\t[d:database]"); Console.WriteLine("\t[u:user]"); Console.WriteLine("\t[P:pass]"); Console.WriteLine(); Console.WriteLine($"example: {cmd} h:localhost n: p:5432 d:postgres u:postgres P:postgres"); Console.WriteLine(); Console.WriteLine("The order of params is not important; required params are: host, port, user, pass;"); Console.WriteLine("In most cases database is also a required param, although not always ie: dropping a db"); Console.WriteLine("invalid params will result in errors when trying to connect."); Console.WriteLine(); return; } if (args.Count > 0) { var serverhost = ExtractParam("h", args); var servername = ExtractParam("n", args); var serverport = ExtractParam <int?>("p", args); var database = ExtractParam("d", args); var user = ExtractParam("u", args); var pass = ExtractParam("P", args); if (ValidateDbCredentials(serverhost, servername, serverport, database, user, pass)) { Dsc = new DataSourceCredentials { ServerHost = serverhost, ServerName = servername, ServerPort = serverport, DbName = database, UserName = user, Pass = pass, DataSourceProvider = DataSourceProvider.Npgsql }; } else { ConsoleEx.WriteErr($"Invalid database credentials. Type {cmd} help to get more details on the command usage."); } } PrintDbc(); }
/// <summary> /// Sets default db credentials /// </summary> protected virtual void SetDefaultDsc() { Dsc = JsonConvert.DeserializeObject <DataSourceCredentials>( ConfigurationManager.AppSettings["DefaultDsc"] ); }