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;
            }
        }