private static AppArgsModel getAppArgsModel(Dictionary <string, string> args) { AppArgsModel result = new AppArgsModel(); if (args.ContainsKey("noui")) { result.NoUI = args["noui"] == "true"; } if (args.ContainsKey("server")) { result.Server = args["server"]; } if (args.ContainsKey("server")) { result.Server = args["server"]; } if (args.ContainsKey("sspi")) { result.IsSSPI = args["sspi"] == "true"; } if (!result.IsSSPI) { if (args.ContainsKey("user")) { result.User = args["user"]; } if (args.ContainsKey("login")) { result.Login = args["login"]; } } if (args.ContainsKey("db")) { result.Db = args["db"]; } if (args.ContainsKey("company")) { result.Company = args["company"].ToInt(); } if (args.ContainsKey("agreement")) { result.Agreement = args["agreement"].ToInt(); } return(result); }
// Initialization code. Don't use any Avalonia, third-party APIs or any // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. public static int Main(string[] args) { Console.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + ": Start..."); dictArgs = getArgsParams(args); argsModel = getAppArgsModel(dictArgs !); if (argsModel.NoUI) { App.runWithArgs(null, new Views.MainWindowViewModel(), argsModel); while (!IsFinish) { Thread.Sleep(500); } return(0); } else { return(BuildAvaloniaApp().StartWithClassicDesktopLifetime(args)); } }
internal static void runWithArgs(IClassicDesktopStyleApplicationLifetime?app, MainWindowViewModel dataContext, AppArgsModel args) { //server=.;sspi=true;user=sa;login=1;db=GlobalParts;company=12;agreement=7 if (args == null) { return; } ConnectViewModel?cvm = dataContext.CurrentContent as ConnectViewModel; if (cvm == null) { return; } if (Program.dictArgs.ContainsKey("server")) { cvm.Connection.DataSource = args.Server; } if (Program.dictArgs.ContainsKey("sspi")) { cvm.Connection.IsSSPI = args.IsSSPI; } if (!cvm.Connection.IsSSPI) { if (Program.dictArgs.ContainsKey("user")) { cvm.Connection.UserID = args.User; } if (Program.dictArgs.ContainsKey("login")) { cvm.Connection.Password = args.Login; } } if (Program.dictArgs.ContainsKey("db")) { cvm.Connection.InitialCatalog = args.Db; } if (!dataContext.Next()) { return; } SelectAgreementsViewModel?savm = dataContext.CurrentContent as SelectAgreementsViewModel; if (savm == null) { return; } savm.SelectOneRecordAgreements(args.Company, args.Agreement); if (args.NoUI) { dataContext.onEndExport = () => { Console.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + ": Finish..."); Program.IsFinish = true; } } ; else { dataContext.onEndExport = () => Dispatcher.UIThread.InvokeAsync((Action) delegate() { Console.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + ": Finish..."); Program.IsFinish = true; if (app != null) { app.Shutdown(0); } }); } if (!dataContext.Next()) { return; } }