Пример #1
0
    void SearchEmployee_EntitySelected(object sender, EntitySelectedEventArgs e)
    {
        MainTelemetry.AddCount("SearchEmployeeToolBar");
        var id = DomainHelper.GetId(e.Entity);
        DialogViewModelBase after = null;

        if (cnbOpenInWindow.Active)
        {
            IPage replaced;
            if (NavigationManager.CurrentPage?.ViewModel is EmployeeViewModel)
            {
                replaced = NavigationManager.CurrentPage;
            }
            else
            {
                replaced = NavigationManager.IndependentPages.Reverse().FirstOrDefault(x => x.ViewModel is EmployeeViewModel);
            }

            if (replaced != null)
            {
                IPage last = null;
                foreach (var page in NavigationManager.TopLevelPages)
                {
                    if (page == replaced)
                    {
                        after = last?.ViewModel;
                        break;
                    }
                    last = page;
                }
                NavigationManager.AskClosePage(replaced);
            }
        }
        NavigationManager.OpenViewModel <EmployeeViewModel, IEntityUoWBuilder>(after, EntityUoWBuilder.ForOpen(id));
    }
Пример #2
0
 protected void OnAction7Activated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("MeasurementUnits");
     tdiMain.OpenTab(OrmReference.GenerateHashName <MeasurementUnits>(),
                     () => new OrmReference(typeof(MeasurementUnits))
                     );
 }
Пример #3
0
 protected void OnActionRegulationDocActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("RegulationDoc");
     tdiMain.OpenTab(OrmReference.GenerateHashName <RegulationDoc>(),
                     () => new OrmReference(typeof(RegulationDoc))
                     );
 }
Пример #4
0
 void NavigationManager_ViewModelOpened(object sender, ViewModelOpenedEventArgs e)
 {
     if (e.ViewModel != null)
     {
         MainTelemetry.AddCount(e.ViewModel.GetType().Name.Replace("ViewModel", ""));
     }
 }
Пример #5
0
 protected void OnActionUpdateActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("CheckUpdate");
     using (var scope = MainClass.AppDIContainer.BeginLifetimeScope()) {
         var updater = scope.Resolve <ApplicationUpdater>();
         updater.StartCheckUpdate(UpdaterFlags.ShowAnyway, scope);
     }
 }
Пример #6
0
 protected void OnAction11Activated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("ReportStockAllWear");
     workwear.ReportsDlg.StockAllWearDlg stockAllWearDlg = new workwear.ReportsDlg.StockAllWearDlg();
     tdiMain.OpenTab(
         QSReport.ReportViewDlg.GenerateHashName(stockAllWearDlg),
         () => new QSReport.ReportViewDlg(stockAllWearDlg)
         );
 }
Пример #7
0
    protected void OnUsersActionActivated(object sender, EventArgs e)
    {
        MainTelemetry.AddCount("OpenUsers");
        Users winUsers = new Users();

        winUsers.Show();
        winUsers.Run();
        winUsers.Destroy();
    }
Пример #8
0
 protected void OnAboutActionActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("RunAboutDialog");
     using (var local = AutofacScope.BeginLifetimeScope()) {
         var about = local.Resolve <AboutView>();
         about.Run();
         about.Destroy();
     }
 }
Пример #9
0
    protected void OnActionAmountEmployeeGetWearActivated(object sender, EventArgs e)
    {
        MainTelemetry.AddCount("ReportAmountEmployeeGetWear");
        AmountEmployeeGetWearDlg widget = new AmountEmployeeGetWearDlg("AmountEmployeeGetWear", "Количество сотрудников получивших СИЗ");

        tdiMain.OpenTab(
            QSReport.ReportViewDlg.GenerateHashName(widget),
            () => new QSReport.ReportViewDlg(widget)
            );
    }
Пример #10
0
    protected void OnAction10Activated(object sender, EventArgs e)
    {
        MainTelemetry.AddCount("ReportWearStatement");
        WearStatement widget = new WearStatement();

        tdiMain.OpenTab(
            QSReport.ReportViewDlg.GenerateHashName(widget),
            () => new QSReport.ReportViewDlg(widget)
            );
    }
Пример #11
0
 protected void OnActionAdminGuideActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("OpenAdminGuide");
     try {
         System.Diagnostics.Process.Start("admin-guide.pdf");
     }
     catch (System.ComponentModel.Win32Exception ex) {
         AutofacScope.Resolve <IInteractiveMessage>().ShowMessage(ImportanceLevel.Error,
                                                                  $"При открытии PDF файла с документацией произошла ошибка:\n{ex.Message}\n" +
                                                                  "Возможно на компьютере не установлена или неисправна программа для открытия PDF");
     }
 }
Пример #12
0
 protected void OnActionBaseSettingsActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("DataBaseSettings");
     NavigationManager.OpenViewModel <DataBaseSettingsViewModel>(null);
 }
Пример #13
0
 protected void OnDialogAuthenticationActionActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("ChangeUserPassword");
     QSMain.User.ChangeUserPassword(this);
 }
Пример #14
0
 protected void OnActionYouTubeActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("youtube.com");
     System.Diagnostics.Process.Start("https://www.youtube.com/channel/UC4U9Rzp-yfRgWd2R0f4iIGg");
 }
Пример #15
0
 protected void OnActionTwitterActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("twitter.com");
     System.Diagnostics.Process.Start("https://twitter.com/QSolutionRu");
 }
Пример #16
0
 protected void OnActionOdnoklasnikiActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("ok.ru");
     System.Diagnostics.Process.Start("https://ok.ru/qualitysolution");
 }
Пример #17
0
 protected void OnActionVKActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("vk.com");
     System.Diagnostics.Process.Start("https://vk.com/qualitysolution");
 }
Пример #18
0
 protected void OnActionOpenReformalActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("OpenReformal.ru");
     System.Diagnostics.Process.Start("http://qs-workwear.reformal.ru/");
 }
Пример #19
0
 protected void OnActionHistoryActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("RunChangeLogDlg");
     QSMain.RunChangeLogDlg(this);
 }
Пример #20
0
 protected void OnActionPayActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("pay.qsolution.ru");
     System.Diagnostics.Process.Start("http://pay.qsolution.ru/");
 }
Пример #21
0
 protected void OnActionSNActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("EditSerialNumber");
     NavigationManager.OpenViewModel <SerialNumberViewModel>(null);
 }
Пример #22
0
        public static void Main(string[] args)
        {
            UnhandledExceptionHandler unhandledExceptionHandler = new UnhandledExceptionHandler();

            try
            {
                WindowStartupFix.WindowsCheck();
                Application.Init();
                QSMain.GuiThread           = System.Threading.Thread.CurrentThread;
                GtkGuiDispatcher.GuiThread = System.Threading.Thread.CurrentThread;

                var builder = new ContainerBuilder();
                AutofacStartupConfig(builder);
                startupContainer = builder.Build();
                unhandledExceptionHandler.UpdateDependencies(startupContainer);
                unhandledExceptionHandler.SubscribeToUnhandledExceptions();
            } catch (MissingMethodException ex) when(ex.Message.Contains("System.String System.String.Format"))
            {
                WindowStartupFix.DisplayWindowsOkMessage("Версия .Net Framework должна быть не ниже 4.6.1. Установите более новую платформу.", "Старая версия .Net");
                return;
            }
            catch (Exception fallEx) {
                if (WindowStartupFix.IsWindows)
                {
                    WindowStartupFix.DisplayWindowsOkMessage(fallEx.ToString(), "Критическая ошибка");
                }
                else
                {
                    Console.WriteLine(fallEx);
                }

                logger.Fatal(fallEx);
                return;
            }

            ILifetimeScope scopeLoginTime = startupContainer.BeginLifetimeScope();
            // Создаем окно входа
            Login LoginDialog = new Login();

            LoginDialog.Logo = Gdk.Pixbuf.LoadFromResource("workwear.icon.logo.png");
            LoginDialog.SetDefaultNames("workwear");
            LoginDialog.DefaultLogin      = "******";
            LoginDialog.DefaultServer     = "demo.qsolution.ru";
            LoginDialog.DefaultConnection = "Демонстрационная база";
            Login.ApplicationDemoServer   = "demo.qsolution.ru";
            LoginDialog.DemoMessage       = "Для подключения к демонстрационному серверу используйте следующие настройки:\n" +
                                            "\n" +
                                            "<b>Сервер:</b> demo.qsolution.ru\n" +
                                            "<b>Пользователь:</b> demo\n" +
                                            "<b>Пароль:</b> demo\n" +
                                            "\n" +
                                            "Для установки собственного сервера обратитесь к документации.";
            Login.CreateDBHelpTooltip = "Инструкция по установке сервера MySQL";
            Login.CreateDBHelpUrl     = "http://doc.qsolution.ru/workwear/" + new ApplicationVersionInfo().Version.ToString(2) + "/install.html#InstallDBServer";
            LoginDialog.GetDBCreator  = scopeLoginTime.Resolve <IDBCreator>;

            LoginDialog.UpdateFromGConf();

            ResponseType LoginResult;

            LoginResult = (ResponseType)LoginDialog.Run();
            if (LoginResult == ResponseType.DeleteEvent || LoginResult == ResponseType.Cancel)
            {
                return;
            }

            LoginDialog.Destroy();
            scopeLoginTime.Dispose();

            QSSaaS.Session.StartSessionRefresh();

            //Прописываем системную валюту
            CurrencyWorks.CurrencyShortFomat = "{0:C}";
            CurrencyWorks.CurrencyShortName  = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol;

            CreateBaseConfig();                                                       //Настройка базы
            AppDIContainer = startupContainer.BeginLifetimeScope(AutofacClassConfig); //Создаем постоянный контейнер
            unhandledExceptionHandler.UpdateDependencies(AppDIContainer);

            //Настройка удаления
            Configure.ConfigureDeletion();
#if !DEBUG
            //Инициализируем телеметрию
            var applicationInfo = new ApplicationVersionInfo();
            MainTelemetry.Product = applicationInfo.ProductName;
            MainTelemetry.Edition = applicationInfo.Modification;
            MainTelemetry.Version = applicationInfo.Version.ToString();
            MainTelemetry.IsDemo  = Login.ApplicationDemoServer == QSMain.connectionDB.DataSource;
            var appConfig = QSMachineConfig.MachineConfig.ConfigSource.Configs["Application"];
            if (appConfig != null)
            {
                MainTelemetry.DoNotTrack = appConfig.GetBoolean("DoNotTrack", false);
            }

            MainTelemetry.StartUpdateByTimer(600);
#else
            MainTelemetry.DoNotTrack = true;
#endif
            //Запускаем программу
            MainWin        = new MainWindow();
            MainWin.Title += string.Format(" (БД: {0})", LoginDialog.SelectedConnection);
            if (QSMain.User.Login == "root")
            {
                return;
            }
            MainWin.Show();
            Application.Run();

            if (!MainTelemetry.SendingError)
            {
                MainTelemetry.SendTimeout = TimeSpan.FromSeconds(2);
                MainTelemetry.SendTelemetry();
            }
            QSSaaS.Session.StopSessionRefresh();
            AppDIContainer.Dispose();
            startupContainer.Dispose();
        }
Пример #23
0
 protected void OnActionSiteActivated(object sender, EventArgs e)
 {
     MainTelemetry.AddCount("OpenSite");
     System.Diagnostics.Process.Start("http://workwear.qsolution.ru/?utm_source=qs&utm_medium=app_workwear&utm_campaign=help_open_site");
 }