private void Button_Click(object sender, RoutedEventArgs e) { var button = sender as Button; var tag = button.Tag as string; var tagInt = Convert.ToInt32(tag); switch (tagInt) { case 0: //Нажата кнопка "Искать периодическое издание по названию" if (PeriodicalNameTextBox.Text != "") { using (TheContext db = new TheContext()) { var periodicals = db.Periodicals.SqlQuery( "select * from[Coursework_2018].[dbo].[Periodical] where PeriodicalName like @name", new SqlParameter("@name", $"%{PeriodicalNameTextBox.Text}%") ).ToList(); PeriodicalsDataGrid.ItemsSource = periodicals; } } else { //Вывод окна с сообщением и вывод в DataGrid всей периодики из БД MessageBoxResult result = MessageBox.Show("Введите данные для поиска."); AllPeriodicals(); } PeriodicalItemsDataGrid.ItemsSource = null; PeriodicalIssuesDataGrid.ItemsSource = null; break; case 1: //Нажата кнопка "Искать выпуск периодического издания по номеру" if (IssueNumberTextBox.Text != "") { if (PeriodicalsDataGrid.SelectedItem != null) { using (TheContext db = new TheContext()) { Periodical currentPeriodical = (Periodical)PeriodicalsDataGrid.SelectedItem; List <PeriodicalIssue> periodicalIssues = null; bool flag = true; try { periodicalIssues = db.PeriodicalIssues.SqlQuery( @"select * from [Coursework_2018].[dbo].[PeriodicalIssue] where PeriodicalID=@periodicalID and IssueNumber=@issueNumber", new SqlParameter("@periodicalID", currentPeriodical.PeriodicalID), new SqlParameter("@issueNumber", Convert.ToInt32(IssueNumberTextBox.Text)) ).ToList(); } catch (FormatException) { flag = false; IssueNumberTextBox.Text = ""; MessageBox.Show("Номер выпуска должен быть числом."); } if (flag == true) { PeriodicalIssuesDataGrid.ItemsSource = periodicalIssues; } } } else { MessageBoxResult result = MessageBox.Show("Выберите периодическое издание."); } } else { //Вывод окна с сообщением и вывод в DataGrid всей периодики из БД MessageBoxResult result = MessageBox.Show("Введите данные для поиска."); AllPeriodicals(); } PeriodicalItemsDataGrid.ItemsSource = null; break; case 2: //Нажата кнопка "Списать выбранный экземпляр периодического издания" if (PeriodicalItemsDataGrid.SelectedItem != null) { using (var db = new TheContext()) { SearchWindows.QueryResultClasses.PeriodicalSearchWindow_PeriodicalItemsDataGrid currentPeriodicalItem = (SearchWindows.QueryResultClasses.PeriodicalSearchWindow_PeriodicalItemsDataGrid)PeriodicalItemsDataGrid.SelectedItem; if (currentPeriodicalItem.Status == "Available") { const string WriteOffDocumentQuery = "update [Coursework_2018].[dbo].[DocumentItem] set Status = 'Written off', WrittenOffDate = getdate() where DocumentItemID = @id"; db.Database.ExecuteSqlCommand(WriteOffDocumentQuery, new SqlParameter("@id", currentPeriodicalItem.DocumentItemID)); //Обновление данных в PeriodicalItemsDataGrid: ItemsByIssue(); } else { if (currentPeriodicalItem.Status == "Unavailable") { MessageBoxResult result = MessageBox.Show("Периодическое издание используется читателем библиотеки, списание невозможно."); } if (currentPeriodicalItem.Status == "Written off") { MessageBoxResult result = MessageBox.Show("Периодическое издание уже списано из фонда библиотеки."); } } } } else { MessageBoxResult result = MessageBox.Show("Выберите экземпляр периодического издания."); } break; case 3: //Нажата кнопка "Назад" Close(); break; } }
private void Button_Click(object sender, RoutedEventArgs e) { var button = sender as Button; var tag = button.Tag as string; var tagInt = Convert.ToInt32(tag); switch (tagInt) { case 0: //Нажата кнопка "Искать периодическое издание по названию" if (PeriodicalNameTextBox.Text != "") { using (TheContext db = new TheContext()) { var periodicals = db.Periodicals.SqlQuery( "select * from[Coursework_2018].[dbo].[Periodical] where PeriodicalName like @name", new SqlParameter("@name", $"%{PeriodicalNameTextBox.Text}%") ).ToList(); PeriodicalsDataGrid.ItemsSource = periodicals; } } else { //Вывод окна с сообщением и вывод в DataGrid всей периодики из БД MessageBoxResult result = MessageBox.Show("Введите данные для поиска."); AllPeriodicals(); } PeriodicalItemsDataGrid.ItemsSource = null; PeriodicalIssuesDataGrid.ItemsSource = null; break; case 1: //Нажата кнопка "Искать выпуск периодического издания по номеру" if (IssueNumberTextBox.Text != "") { if (PeriodicalsDataGrid.SelectedItem != null) { using (TheContext db = new TheContext()) { Periodical currentPeriodical = (Periodical)PeriodicalsDataGrid.SelectedItem; List <PeriodicalIssue> periodicalIssues = null; bool flag = true; try { periodicalIssues = db.PeriodicalIssues.SqlQuery( @"select * from [Coursework_2018].[dbo].[PeriodicalIssue] where PeriodicalID=@periodicalID and IssueNumber=@issueNumber", new SqlParameter("@periodicalID", currentPeriodical.PeriodicalID), new SqlParameter("@issueNumber", Convert.ToInt32(IssueNumberTextBox.Text)) ).ToList(); } catch (FormatException) { flag = false; IssueNumberTextBox.Text = ""; MessageBox.Show("Номер выпуска должен быть числом."); } if (flag == true) { PeriodicalIssuesDataGrid.ItemsSource = periodicalIssues; } } } else { MessageBoxResult result = MessageBox.Show("Выберите периодическое издание."); } } else { //Вывод окна с сообщением и вывод в DataGrid всей периодики из БД MessageBoxResult result = MessageBox.Show("Введите данные для поиска."); AllPeriodicals(); } PeriodicalItemsDataGrid.ItemsSource = null; break; case 2: //Нажата кнопка "Выдать выбранный экземпляр периодического издания читателю" if (CustomerIDTextBox.Text != "") { if (PeriodicalItemsDataGrid.SelectedItem != null) { using (var db = new TheContext()) { SearchWindows.QueryResultClasses.PeriodicalSearchWindow_PeriodicalItemsDataGrid currentPeriodicalItem = (SearchWindows.QueryResultClasses.PeriodicalSearchWindow_PeriodicalItemsDataGrid)PeriodicalItemsDataGrid.SelectedItem; if (currentPeriodicalItem.Status == "Available") { const string CreateCustomerDocumentInteractionQuery = @"insert into [Coursework_2018].[dbo].[CustomerDocumentInteraction] (CustomerID, DocumentItemID, CheckedOutDate, DueDate, IfRenewed, Status) values (@customerID, @documentItemID, getdate(), dateadd(month, 1, getdate()), 0, 'Taken')"; const string SetDocumentStatusUnavailableQuery = "update[Coursework_2018].[dbo].[DocumentItem] set Status = 'Unavailable' where DocumentItemID = @documentItemId"; bool flag = true; try { db.Database.ExecuteSqlCommand(CreateCustomerDocumentInteractionQuery, new SqlParameter("@customerID", CustomerIDTextBox.Text), new SqlParameter("@documentItemID", currentPeriodicalItem.DocumentItemID)); } catch (SqlException) { MessageBox.Show("Пользователь с указанным ID не существует"); flag = false; } if (flag == true) { db.Database.ExecuteSqlCommand(SetDocumentStatusUnavailableQuery, new SqlParameter("@documentItemID", currentPeriodicalItem.DocumentItemID)); MessageBox.Show("Экземпляр периодического издания выдан читателю."); } //Обновление данных в PeriodicalItemsDataGrid: ItemsByIssue(); } else { if (currentPeriodicalItem.Status == "Unavailable") { MessageBoxResult result = MessageBox.Show("Периодическое издание используется читателем библиотеки, выдача невозможна."); } if (currentPeriodicalItem.Status == "Written off") { MessageBoxResult result = MessageBox.Show("Периодическое издание списано из фонда библиотеки, выдача невозможна."); } } } } else { MessageBoxResult result = MessageBox.Show("Выберите экземпляр периодического издания."); } } else { MessageBoxResult result = MessageBox.Show("Введите ID читателя."); } break; case 3: //Нажата кнопка "Назад" Close(); break; } }