/// <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; } }
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); } }
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(); }