/// <summary>
        /// Проводит проверку принтера и отправку на сервер.
        /// </summary>
        private async void ValidateAndSendReceiptAsync()
        {
            // Провести валидацию объекта с получением списка ошибок.
            List <ValidationResult> results = SelectedPrinter.Validate(new ValidationContext(SelectedPrinter)).ToList();

            // Если список ошибок не пустой, вывести эти ошибки.
            if (results.Any())
            {
                foreach (var error in results)
                {
                    Alert.Show(error.ErrorMessage, "Ошибка!", MessageBoxButton.OK);
                }
            }
            // Если ошибок нет.
            else
            {
                // Если принтер новый.
                if (SelectedPrinter.Id == 0)
                {
                    // Отправить принтер на сохранение в бд
                    await ServerConnect.Connection.InvokeAsync("AddPrinter", SelectedPrinter);
                }
                // Если принтер существующий.
                else
                {
                    // Отправить принтер на сохранение в бд
                    await ServerConnect.Connection.InvokeAsync("UpdatePrinter", SelectedPrinter);
                }
                // Закрыть режим редактирования.
                CanEdit = false;
                // Сбросить выбранный принтер.
                SelectedPrinter = null;
            }
        }
Exemple #2
0
 private void GetSession(int ID)
 {
     using (SqlConnection con = new SqlConnection(connectionString))
         using (SqlCommand cmd = new SqlCommand("SELECT * FROM kiosk WHERE id=@id", con))
         {
             con.Open();
             cmd.Parameters.AddWithValue("id", ID);
             SqlDataReader rdr = cmd.ExecuteReader();
             while (rdr.Read())
             {
                 this.Status          = rdr["status"].ToString();
                 this.ID              = Convert.ToInt32(rdr["id"].ToString());
                 this.Time            = Convert.ToInt32(rdr["time"].ToString());
                 this.Message         = rdr["message"].ToString();
                 this.SelectedPrinter = (SelectedPrinter)Convert.ToInt32(rdr["selected_printer"].ToString());
             }
             con.Close();
         }
 }
        public MainWindow()
        {
            InitializeComponent();

            PopulateUIList();

            Devices = new List<SelectedPrinter>();

            UdpReceiver = new UDPReceiver(8000,this);

            this.Closing += view_Closing;

            if (Properties.Settings.Default.LastPrinter.Length > 0)
            {
                Printer = new SelectedPrinter();
                Printer.Name = Properties.Settings.Default.LastPrinter.Split(',')[0];
                Printer.Address = Properties.Settings.Default.LastPrinter.Split(',')[1];
                this.Title = "Printer: " + Printer.Name;

            }
        }
        /// <summary>
        /// Отменяет редактирование принтера.
        /// </summary>
        private async void DiscardChangesAsync()
        {
            // Отменить режим редактирования.
            CanEdit = false;
            // Если принтер новый.
            if (SelectedPrinter.Id == 0)
            {
                // Сбросить выбранный принтер.
                SelectedPrinter = null;
            }
            else
            {
                // Отправить запрос на закрытие документа.
                await ServerConnect.Connection.InvokeAsync("CloseDocument", SelectedPrinter.Id, SelectedPrinter.GetType().Name, 0);

                // Отправить запрос на получение принтера.
                await ServerConnect.Connection.InvokeAsync("GetPrinter", SelectedPrinter.Id);
            }
        }
Exemple #5
0
        private void MainTimer_Tick(object sender, EventArgs e)
        {
            Process[] sssProcesses = Process.GetProcessesByName("SSS");
            if (sssProcesses.Length < 1)
            {
                if (Environment.Is64BitOperatingSystem)
                {
                    Process.Start(@"C:\Program Files (x86)\SessionSoft\SSS.exe");
                }
                else
                {
                    Process.Start(@"C:\Program Files\SessionSoft\SSS.exe");
                }
            }

            CurrentSession.GetSession();

            if (CurrentSession.SelectedPrinter != CurrentPrinter)
            {
                switch (CurrentSession.SelectedPrinter)
                {
                case SelectedPrinter.Envisionware:
                    runScript(PrinterScripts.MakeEnvisionWareDefault);
                    break;

                case SelectedPrinter.CirculationDesk:
                    Process          process   = new System.Diagnostics.Process();
                    ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
                    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                    startInfo.FileName    = "cmd.exe";
                    if (Environment.Is64BitOperatingSystem)
                    {
                        startInfo.Arguments = PrinterScripts.AddCirculationPrinter;
                    }
                    else
                    {
                        startInfo.Arguments = PrinterScripts.AddCirculationPrinterx86;
                    }
                    process.StartInfo = startInfo;
                    process.Start();
                    process.WaitForExit();
                    runScript(PrinterScripts.MakeCirculationDefault);
                    break;
                }
                CurrentPrinter = CurrentSession.SelectedPrinter;
            }

            if ((CurrentSession.Message != "") && (CurrentSession.Message != "none"))
            {
                CurrentSession.Time--;
                groupBox1.Show();
                this.TopMost     = true;
                this.WindowState = FormWindowState.Normal;
                lblMessage.Text  = CurrentSession.Message;
                UpdateTimer();
            }
            else if ((CurrentSession.Status == "unlocked") || (CurrentSession.Status == "renewed"))
            {
                CurrentSession.Time--;
                if (CurrentSession.Time % Settings.Mod == 0)
                {
                    switch (CurrentSession.Time)
                    {
                    case 300:
                        TryRenew("This session will end in five minutes.  Please see a librarian if you want to renew.");
                        break;

                    case 60:
                        TryRenew("This session will end in one minute.  All unsaved work will be lost!");
                        break;

                    case 0:
                        TryRenew("Ending session.");
                        break;

                    default: break;
                    }
                }
                CheckIdle(false);
                UpdateTimer();
            }
            else if (CurrentSession.Status == "idle")
            {
                CurrentSession.Time--;
                CheckIdle(true);
                UpdateTimer();
            }
            else if (CurrentSession.Status == "terminate")
            {
                CurrentSession.EndSession(Settings);
                Process.Start("shutdown.exe", "/r /f /t 0");
            }
            else if (CurrentSession.Status == "locked")
            {
                this.WindowState = FormWindowState.Minimized;
                CurrentSession.EndSession(Settings);
                Process[] processes = Process.GetProcessesByName("IEXPLORE");
                if (processes.Length < 1)
                {
                    Process.Start("IExplore.exe", "-k http://SSServer/SessionSoftWebClient/default.aspx?id=" + CurrentSession.ID);
                }
            }
            else if ((CurrentSession.Status == "startkoha") || (CurrentSession.Status == "startstaff") || (CurrentSession.Status == "startsip"))
            {
                CurrentSession.StartSession(Settings, false, CurrentSession.Status, Processes); this.WindowState = FormWindowState.Normal;
            }
            else if (CurrentSession.Status == "startadmin")
            {
                CurrentSession.StartSession(Settings, true, CurrentSession.Status, Processes);
            }
            else if (CurrentSession.Status == "restart")
            {
                CurrentSession.EndSession(Settings);
                Process.Start("shutdown.exe", "/r /f /t 0");
            }
            else if (CurrentSession.Status == "shutdown")
            {
                CurrentSession.EndSession(Settings);
                Process.Start("shutdown.exe", "/s /f /t 0");
            }
            else if (CurrentSession.Status == "resume")
            {
                CurrentSession.ResumeSession();
            }
            else if (CurrentSession.Status == "disabled")
            {
                this.FormClosing -= this.Form1_FormClosing;
                this.Close();
            }

            CurrentSession.UpdateServer();
        }