private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (criterion.Text == "Название запчасти")
            {
                if (searchCriterion.Text != CheckSparePart.CheckSparePartName(searchCriterion.Text))
                {
                    MessageBox.Show(CheckSparePart.CheckSparePartName(searchCriterion.Text));
                    return;
                }
            }
            else if (criterion.Text == "Название автомобиля")
            {
                if (searchCriterion.Text != CheckSparePart.CheckCarName(searchCriterion.Text))
                {
                    MessageBox.Show(CheckSparePart.CheckCarName(searchCriterion.Text));
                    return;
                }
            }
            else if (criterion.Text == "Дата изготовления")
            {
                if (searchCriterion.Text != CheckSparePart.CheckCreationDate(searchCriterion.Text))
                {
                    MessageBox.Show(CheckSparePart.CheckCreationDate(searchCriterion.Text));
                    return;
                }
            }
            else if (criterion.Text == "Стоимость одной детали")
            {
                if (searchCriterion.Text != CheckSparePart.CheckSparePartCost(searchCriterion.Text))
                {
                    MessageBox.Show(CheckSparePart.CheckSparePartCost(searchCriterion.Text));
                    return;
                }
            }
            else
            {
                MessageBox.Show("Вы не выбрали критерий поиска.");
                return;
            }
            StreamWriter writeCriterion = new StreamWriter("Criterion.txt"); // записываем критерий поиска в файл

            writeCriterion.Write(criterion.Text);
            writeCriterion.Close();

            StreamWriter writeSearchCriterion = new StreamWriter("SearchCriterion.txt"); // записываем искомую информацию в файл

            writeSearchCriterion.Write(searchCriterion.Text);
            writeSearchCriterion.Close();

            Search search = new Search();

            search.Show();
            this.Close();
        }
        private void SaveChanges(object sender, RoutedEventArgs e)
        {
            if (criterion.Text != string.Empty && searchCriterion.Text != string.Empty)
            {
                int sprPrtCode = Convert.ToInt32(searchCriterion.Text);
                if (criterion.Text == "Название запчасти")
                {
                    if (changingCriterion.Text != CheckSparePart.CheckSparePartName(changingCriterion.Text))
                    {
                        MessageBox.Show(CheckSparePart.CheckSparePartName(changingCriterion.Text));
                        return;
                    }
                    string        selectIdSprPrt = @"SELECT IDSparePartN FROM SparePartName WHERE SparePartN = '" + changingCriterion.Text + "'";
                    int           idSparePartN   = 0;
                    SqlConnection sqlConnection  = new SqlConnection(connectionString);
                    sqlConnection.Open();
                    SqlCommand    sqlCommand    = new SqlCommand(selectIdSprPrt, sqlConnection);
                    SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                    if (sqlDataReader.HasRows) // находим id-шник нового названия запчасти в базе
                    {
                        while (sqlDataReader.Read())
                        {
                            idSparePartN = Convert.ToInt32(sqlDataReader[0].ToString());
                        }
                    }
                    else
                    {
                        MessageBox.Show("В базе нет данных с таким названием запчасти.");
                        return;
                    }
                    sqlDataReader.Close();
                    using (SqlConnection updateRow = new SqlConnection(connectionString))
                        using (SqlCommand lastCommnd = updateRow.CreateCommand()) // обновляем информацию
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET IDSparePartN = @name WHERE SparePartNumber = @number";

                            lastCommnd.Parameters.AddWithValue("@name", idSparePartN);
                            lastCommnd.Parameters.AddWithValue("@number", sprPrtCode);

                            updateRow.Open();
                            lastCommnd.ExecuteNonQuery();
                            updateRow.Close();
                        }
                    sqlConnection.Close();
                }
                else if (criterion.Text == "Название автомобиля")
                {
                    if (changingCriterion.Text != CheckSparePart.CheckCarName(changingCriterion.Text))
                    {
                        MessageBox.Show(CheckSparePart.CheckCarName(changingCriterion.Text));
                        return;
                    }
                    string        selectIdSprPrt = @"SELECT IDCarModel FROM CarModel WHERE CarModelName = '" + changingCriterion.Text + "'";
                    int           idCarModel     = 0;
                    SqlConnection sqlConnection  = new SqlConnection(connectionString);
                    sqlConnection.Open();
                    SqlCommand    sqlCommand    = new SqlCommand(selectIdSprPrt, sqlConnection);
                    SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                    if (sqlDataReader.HasRows) // находим id-шник нового названия автомобиля в базе
                    {
                        while (sqlDataReader.Read())
                        {
                            idCarModel = Convert.ToInt32(sqlDataReader[0].ToString());
                        }
                    }
                    else
                    {
                        MessageBox.Show("В базе нет данных с таким названием автомобиля.");
                        return;
                    }
                    sqlDataReader.Close();
                    using (SqlConnection updateRow = new SqlConnection(connectionString))
                        using (SqlCommand lastCommnd = updateRow.CreateCommand()) // обновляем информацию
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET IDCarModel = @name WHERE SparePartNumber = @number";

                            lastCommnd.Parameters.AddWithValue("@name", idCarModel);
                            lastCommnd.Parameters.AddWithValue("@number", sprPrtCode);

                            updateRow.Open();
                            lastCommnd.ExecuteNonQuery();
                            updateRow.Close();
                        }
                    sqlConnection.Close();
                }
                else if (criterion.Text == "Дата изготовления")
                {
                    if (changingCriterion.Text != CheckSparePart.CheckCreationDate(changingCriterion.Text))
                    {
                        MessageBox.Show(CheckSparePart.CheckCreationDate(changingCriterion.Text));
                        return;
                    }
                    using (SqlConnection updateRow = new SqlConnection(connectionString))
                        using (SqlCommand lastCommnd = updateRow.CreateCommand()) // обновляем информацию
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCreation = @date WHERE SparePartNumber = @number";
                            lastCommnd.Parameters.AddWithValue("@number", sprPrtCode);
                            lastCommnd.Parameters.AddWithValue("@date", changingCriterion.Text);

                            updateRow.Open();
                            lastCommnd.ExecuteNonQuery();
                            updateRow.Close();
                        }
                }
                else if (criterion.Text == "Стоимость одной детали")
                {
                    if (changingCriterion.Text != CheckSparePart.CheckSparePartCost(changingCriterion.Text))
                    {
                        MessageBox.Show(CheckSparePart.CheckSparePartCost(changingCriterion.Text));
                        return;
                    }
                    using (SqlConnection updateRow = new SqlConnection(connectionString))
                        using (SqlCommand lastCommnd = updateRow.CreateCommand()) // обновляем информацию
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCost = @cost WHERE SparePartNumber = @number";
                            lastCommnd.Parameters.AddWithValue("@number", sprPrtCode);
                            lastCommnd.Parameters.AddWithValue("@cost", Convert.ToDouble(changingCriterion.Text));

                            updateRow.Open();
                            lastCommnd.ExecuteNonQuery();
                            updateRow.Close();
                        }
                }
                else if (criterion.Text == "Количество")
                {
                    if (changingCriterion.Text != CheckSparePart.CheckSparePartCount(changingCriterion.Text))
                    {
                        MessageBox.Show(CheckSparePart.CheckSparePartCount(changingCriterion.Text));
                        return;
                    }
                    using (SqlConnection updateRow = new SqlConnection(connectionString)) // обновляем информацию
                        using (SqlCommand lastCommnd = updateRow.CreateCommand())
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCount = @count, IDStatus = (SELECT IDStatus FROM SparePartStatus WHERE StateName  = @status) WHERE SparePartNumber = @number";
                            if (Convert.ToInt32(changingCriterion.Text) == 0) // если новое кол-во 0, меняем статус на "нет в наличии"
                            {
                                lastCommnd.Parameters.AddWithValue("@number", sprPrtCode);
                                lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(changingCriterion.Text));
                                lastCommnd.Parameters.AddWithValue("@status", "Нет в наличии");
                            }
                            else
                            {
                                lastCommnd.Parameters.AddWithValue("@number", sprPrtCode);
                                lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(changingCriterion.Text));
                                lastCommnd.Parameters.AddWithValue("@status", "Есть в наличии");
                            }

                            updateRow.Open();
                            lastCommnd.ExecuteNonQuery();
                            updateRow.Close();
                        }
                }
            }
            else
            {
                MessageBox.Show("Вы не выбрали данные для изменения.");
                return;
            }
            MessageBoxResult mboxResult = MessageBox.Show("Данные обновлены. Желаете изменить что-нибудь еще?", "Предупреждение", MessageBoxButton.YesNo);

            if (mboxResult == MessageBoxResult.No)
            {
                ChangeSparePartsData changeSparePartsData = new ChangeSparePartsData();
                changeSparePartsData.Show();
                this.Close();
            }
        }
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            int           sparePartNameID = 0;
            int           carModelID      = 0;
            int           stateID         = 0;
            SqlConnection connection      = new SqlConnection(connectionString);

            connection.Open();

            if (sparePartName.Text != CheckSparePart.CheckSparePartName(sparePartName.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartName(sparePartName.Text));
                return;
            }
            string        findSparePart = "SELECT IDSparePartN FROM SparePartName WHERE SparePartN = '" + sparePartName.Text + "'";
            SqlCommand    command       = new SqlCommand(findSparePart, connection);
            SqlDataReader firstReader   = command.ExecuteReader(); //ищем id-шник названия детальки, если такое имеется

            if (firstReader.Read())
            {
                sparePartNameID = Convert.ToInt32(firstReader[0].ToString());
            }
            else //если нет, тогда это название добавляем
            {
                string     AddSparePartName = "INSERT INTO SparePartName (SparePartN) VALUES ('" + sparePartName.Text + "')";
                SqlCommand AddCommnd        = new SqlCommand(AddSparePartName, connection);
                firstReader.Close();
                AddCommnd.ExecuteNonQuery();
            }
            firstReader.Close();

            if (carName.Text != CheckSparePart.CheckCarName(carName.Text))
            {
                MessageBox.Show(CheckSparePart.CheckCarName(carName.Text));
                return;
            }
            string        findCar      = "SELECT IDCarModel FROM CarModel WHERE CarModelName = '" + carName.Text + "'";
            SqlCommand    command1     = new SqlCommand(findCar, connection);
            SqlDataReader secondReader = command1.ExecuteReader(); //ищем id-шник названия автомобиля, если такое имеется

            if (secondReader.Read())
            {
                carModelID = Convert.ToInt32(secondReader[0].ToString());
                secondReader.Close();
            }
            else //если нет, тогда это название добавляем
            {
                string     AddCarModelName = "INSERT INTO CarModel (CarModelName) VALUES ('" + carName.Text + "')";
                SqlCommand AddCommnd       = new SqlCommand(AddCarModelName, connection);
                secondReader.Close();
                AddCommnd.ExecuteNonQuery();
            }

            if (creationDate.Text != CheckSparePart.CheckCreationDate(creationDate.Text))
            {
                MessageBox.Show(CheckSparePart.CheckCreationDate(creationDate.Text));
                return;
            }

            string state = string.Empty;

            if (count.Text != CheckSparePart.CheckSparePartCount(count.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartCount(count.Text));
                return;
            }
            else
            {
                if (Convert.ToInt32(count.Text) > 0)
                {
                    state = "Есть в наличии";
                }
                else
                {
                    if (Convert.ToInt32(count.Text) == 0)
                    {
                        state = "Нет в наличии";
                    }
                }
            }

            string        findStateID        = "SELECT IDStatus FROM SparePartStatus WHERE StateName = '" + state + "'";
            SqlCommand    FindStateIDCommand = new SqlCommand(findStateID, connection);
            SqlDataReader readIDState        = FindStateIDCommand.ExecuteReader(); // берем id-шник названия статуса

            if (readIDState.Read())
            {
                stateID = Convert.ToInt32(readIDState[0].ToString());
                readIDState.Close();
            }

            if (cost.Text != CheckSparePart.CheckSparePartCost(cost.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartCost(cost.Text));
                return;
            }

            string        ID         = "SELECT IDSparePartN, IDCarModel FROM SparePartName, CarModel WHERE SparePartN = '" + sparePartName.Text + "' AND CarModelName = '" + carName.Text + "'";
            SqlCommand    sqlCommand = new SqlCommand(ID, connection);
            SqlDataReader readID     = sqlCommand.ExecuteReader();

            if (readID.HasRows)
            {
                while (readID.Read())
                {
                    sparePartNameID = Convert.ToInt32(readID[0].ToString());
                    carModelID      = Convert.ToInt32(readID[1].ToString());
                }
            }
            readID.Close();

            double currentCost = 0;

            string        findReplays        = "SELECT SparepartCost, IDSparePartN, IDCarModel, SparePartCreation FROM SparePart WHERE IDSparePartN = " + sparePartNameID + "AND IDCarModel = " + carModelID + "AND SparePartCreation = '" + creationDate.Text + "'";
            SqlCommand    findReplaysCommand = new SqlCommand(findReplays, connection);
            SqlDataReader replaysReader      = findReplaysCommand.ExecuteReader();

            if (replaysReader.HasRows)                                           //проверка на наличие данных. если соответствия есть - будем обновлять кол-во и стоимость
            {
                while (replaysReader.Read())                                     //переходы к последующим записям
                {
                    currentCost = Convert.ToDouble(replaysReader[0].ToString()); //текущая стоимость
                    if (currentCost < Convert.ToDouble(cost.Text))               //если текущая стоимость меньше той стоимости, которую указали при добавлении новой детали, указываем новую
                    {
                        using (SqlConnection changeSum = new SqlConnection(connectionString))
                            using (SqlCommand lastCommnd = changeSum.CreateCommand())
                            {
                                lastCommnd.CommandText = "UPDATE SparePart SET SparePartCost = @sum, SparePartCount = SparePartCount + @count, IDStatus = (SELECT IDStatus FROM SparePartStatus WHERE StateName  = 'Есть в наличии') WHERE IDSparePartN = " + sparePartNameID + "AND IDCarModel = " + carModelID + "AND SparePartCreation = '" + creationDate.Text + "'";
                                lastCommnd.Parameters.AddWithValue("@sum", Convert.ToDouble(cost.Text));
                                lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(count.Text));

                                changeSum.Open();
                                lastCommnd.ExecuteNonQuery();
                                changeSum.Close();
                            }
                    }
                    else //если текущая стоимость больше той стоимости, которую указали при добавлении новой детали, оставляем старую
                    {
                        using (SqlConnection changeSum = new SqlConnection(connectionString))
                            using (SqlCommand lastCommnd = changeSum.CreateCommand())
                            {
                                lastCommnd.CommandText = "UPDATE SparePart SET SparePartCount = SparePartCount + @count, IDStatus = (SELECT IDStatus FROM SparePartStatus WHERE StateName  = 'Есть в наличии') WHERE IDSparePartN = " + sparePartNameID + "AND IDCarModel = " + carModelID + "AND SparePartCreation = '" + creationDate.Text + "'";
                                lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(count.Text));

                                changeSum.Open();
                                lastCommnd.ExecuteNonQuery();
                                changeSum.Close();
                            }
                    }
                }
            }
            else //если соответствий нет - добавляем новую запчасть на склад
            {
                using (SqlConnection changeSum = new SqlConnection(connectionString))
                    using (SqlCommand lastCommnd = changeSum.CreateCommand())
                    {
                        lastCommnd.CommandText = "INSERT INTO SparePart (IDSparePartN, IDCarModel, IDStatus, SparePartCreation, SparePartCost, SparePartCount) VALUES (@name, @car, @state, @date, @sum, @count)";

                        lastCommnd.Parameters.AddWithValue("@name", Convert.ToInt32(sparePartNameID));
                        lastCommnd.Parameters.AddWithValue("@car", Convert.ToInt32(carModelID));
                        lastCommnd.Parameters.AddWithValue("@state", Convert.ToInt32(stateID));
                        lastCommnd.Parameters.AddWithValue("@date", creationDate.Text);
                        lastCommnd.Parameters.AddWithValue("@sum", Convert.ToDouble(cost.Text));
                        lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(count.Text));

                        changeSum.Open();
                        lastCommnd.ExecuteNonQuery();
                        changeSum.Close();
                    }
            }
            MessageBox.Show("Автозапчасть добавлена на склад.");
        }
        private void MakeOrder_Click(object sender, RoutedEventArgs e)
        {
            if (SparePartName.Text != CheckSparePart.CheckSparePartName(SparePartName.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartName(SparePartName.Text));
                return;
            }

            if (CarName.Text != CheckSparePart.CheckCarName(CarName.Text))
            {
                MessageBox.Show(CheckSparePart.CheckCarName(CarName.Text));
                return;
            }

            if (SparePartCount.Text != CheckSparePart.CheckSparePartCount(SparePartCount.Text))
            {
                MessageBox.Show(CheckSparePart.CheckSparePartCount(SparePartCount.Text));
                return;
            }

            int sparePartID = 0;
            int carModelID  = 0;

            string        myConnectionString = @"Data Source=(local)\SQLEXPRESS; Initial Catalog=StockRoom; Integrated Security=True";
            SqlConnection connection         = new SqlConnection(myConnectionString);

            connection.Open();
            string        findOrderSparePartName = "SELECT IDSparePartN FROM SparePartName WHERE SparePartN = '" + SparePartName.Text + "'";
            SqlCommand    findSparePartName      = new SqlCommand(findOrderSparePartName, connection);
            SqlDataReader sparePartNameReader    = findSparePartName.ExecuteReader();

            if (sparePartNameReader.Read()) // ищем id-шник названия запчасти в базе
            {
                sparePartID = Convert.ToInt32(sparePartNameReader[0].ToString());
                sparePartNameReader.Close();
            }
            else
            {
                MessageBox.Show("Такой автозапчасти нет на складе.");
                return;
            }
            sparePartNameReader.Close();

            string        findOrderCarName   = "SELECT IDCarModel FROM CarModel WHERE CarModelName = '" + CarName.Text + "'";
            SqlCommand    findCarNameCommand = new SqlCommand(findOrderCarName, connection);
            SqlDataReader carNameReader      = findCarNameCommand.ExecuteReader();

            if (carNameReader.Read()) // ищем id-шник названия автомобиля в базе
            {
                carModelID = Convert.ToInt32(carNameReader[0].ToString());
                carNameReader.Close();
            }
            else
            {
                MessageBox.Show("Автозапчасти для такой марки автомобиля нет.");
                return;
            }

            StreamReader file  = new StreamReader("UserLogin.txt");
            string       login = file.ReadLine();

            file.Close();

            int           userCode     = 0;
            string        findUserCode = "SELECT UserCode FROM Users WHERE UserLogin = '******'";
            SqlCommand    findUC       = new SqlCommand(findUserCode, connection);
            SqlDataReader UCReader     = findUC.ExecuteReader();

            if (UCReader.HasRows)  // получаем id-шник пользователя
            {
                while (UCReader.Read())
                {
                    userCode = Convert.ToInt32(UCReader[0].ToString());
                }
            }
            UCReader.Close();

            double        sparePartCost   = 0;
            int           currentCount    = 0;
            int           sparePartNumber = 0;
            string        findOrderData   = "SELECT SparePartNumber, SparePartCount, SparePartCost FROM SparePart WHERE IDSparePartN = " + sparePartID + " AND IDCarModel = " + carModelID + "";
            SqlCommand    findData        = new SqlCommand(findOrderData, connection);
            SqlDataReader dataReader      = findData.ExecuteReader();

            if (dataReader.HasRows)
            {
                while (dataReader.Read()) // берем данные запчасти со склада: номер, кол-во, стоимость
                {
                    sparePartNumber = Convert.ToInt32(dataReader[0].ToString());
                    currentCount    = Convert.ToInt32(dataReader[1].ToString());
                    sparePartCost   = Convert.ToDouble(dataReader[2].ToString());
                }

                if (currentCount < Convert.ToInt32(SparePartCount.Text)) // если кол-во запчастей на складе меньше кол-ва запчастей в заказе
                {
                    MessageBox.Show("Такого количества указанной автозапчасти на складе нет.");
                    return;
                }
                else if (currentCount > Convert.ToInt32(SparePartCount.Text)) // если кол-во запчастей на складе больше кол-ва запчастей в заказе
                {
                    using (SqlConnection changeCount = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = changeCount.CreateCommand()) // уменьшаем кол-во запчастей на складе
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCount = SparePartCount - @count WHERE SparePartNumber = " + sparePartNumber + "";
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));

                            changeCount.Open();
                            lastCommnd.ExecuteNonQuery();
                            changeCount.Close();
                        }

                    using (SqlConnection insertOrderData = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = insertOrderData.CreateCommand()) // записываем данные заказа в базу данных
                        {
                            lastCommnd.CommandText = "INSERT SparePartOrder (UserCode, SparePartNumber, SparePartCount, GeneralSum) VALUES (@UC, @sprptNum, @count, @sum)";
                            lastCommnd.Parameters.AddWithValue("@UC", userCode);
                            lastCommnd.Parameters.AddWithValue("@sprptNum", sparePartNumber);
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));
                            lastCommnd.Parameters.AddWithValue("@sum", Convert.ToDouble(SparePartCount.Text) * sparePartCost);

                            insertOrderData.Open();
                            lastCommnd.ExecuteNonQuery();
                            insertOrderData.Close();
                        }
                }
                else if (currentCount == Convert.ToInt32(SparePartCount.Text)) // если кол-во запчастей на складе равно кол-ву запчастей в заказе
                {
                    using (SqlConnection changeCount = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = changeCount.CreateCommand())
                        {
                            lastCommnd.CommandText = "UPDATE SparePart SET SparePartCount = SparePartCount - @count, IDStatus = (SELECT IDStatus FROM SparePartStatus WHERE StateName = @status) WHERE SparePartNumber = " + sparePartNumber + "";
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));
                            lastCommnd.Parameters.AddWithValue("@status", "Нет в наличии");

                            changeCount.Open();
                            lastCommnd.ExecuteNonQuery();
                            changeCount.Close();
                        }

                    using (SqlConnection insertOrderData = new SqlConnection(myConnectionString))
                        using (SqlCommand lastCommnd = insertOrderData.CreateCommand()) // записываем данные заказа в базу данных
                        {
                            lastCommnd.CommandText = "INSERT SparePartOrder (UserCode, SparePartNumber, SparePartCount, GeneralSum) VALUES (@UC, @sprptNum, @count, @sum)";
                            lastCommnd.Parameters.AddWithValue("@UC", userCode);
                            lastCommnd.Parameters.AddWithValue("@sprptNum", sparePartNumber);
                            lastCommnd.Parameters.AddWithValue("@count", Convert.ToInt32(SparePartCount.Text));
                            lastCommnd.Parameters.AddWithValue("@sum", Convert.ToDouble(SparePartCount.Text) * sparePartCost);

                            insertOrderData.Open();
                            lastCommnd.ExecuteNonQuery();
                            insertOrderData.Close();
                        }
                }
            }
            else
            {
                MessageBox.Show("Нет подходящей автозапчасти для указанного автомобиля.");
                return;
            }
            dataReader.Close();
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); // открываем Word
            try
            {
                Document doc = app.Documents.Open(System.IO.Path.GetFullPath(@"ШаблонЗаказ.docx")); // открыаем шаблон
                ReplaseWord("{OrderDate}", DateTime.Now.ToShortDateString(), doc);                  // записываем в метку дату заказа
                string        query         = "SELECT OrderNumber, CarModelName, SparePartN, SparePartCost, SparePartOrder.SparePartCount, UserName, UserSurname, UserLogin, GeneralSum FROM SparePartOrder, CarModel, SparePartName, SparePart, Users WHERE SparePartOrder.UserCode = Users.UserCode AND SparePartOrder.UserCode = " + userCode + " AND SparePartOrder.SparePartNumber = SparePart.SparePartNumber AND SparePartOrder.SparePartNumber = " + sparePartNumber + " AND SparePart.IDCarModel = CarModel.IDCarModel AND SparePart.IDSparePartN = SparePartName.IDSparePartN AND SparePartOrder.SparePartCount = " + Convert.ToInt32(SparePartCount.Text) + "";
                SqlCommand    sqlCommand    = new SqlCommand(query, connection);
                SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                if (sqlDataReader.HasRows) // записываем в метки данные заказа
                {
                    while (sqlDataReader.Read())
                    {
                        ReplaseWord("{OrderNumber}", sqlDataReader[0].ToString() + "\n", doc);
                        ReplaseWord("{SparePartN}", sqlDataReader[2].ToString() + "\n", doc);
                        ReplaseWord("{CarModelName}", sqlDataReader[1].ToString() + "\n", doc);
                        ReplaseWord("{SparePartCost}", sqlDataReader[3].ToString() + "\n", doc);
                        ReplaseWord("{SparePartCount}", sqlDataReader[4].ToString() + "\n", doc);
                        ReplaseWord("{UserName}", sqlDataReader[5].ToString() + "\n", doc);
                        ReplaseWord("{UserSurname}", sqlDataReader[6].ToString() + "\n", doc);
                        ReplaseWord("{UserLogin}", sqlDataReader[7].ToString() + "\n", doc);
                        ReplaseWord("{GeneralSum}", sqlDataReader[8].ToString() + "\n", doc);
                        path += @"\Отчет по заказу № " + sqlDataReader[0].ToString() + ".docx";
                    }
                }
                doc.SaveAs2(path);
                sqlDataReader.Close();
                doc.Close();
                connection.Close();
            }
            catch (Exception q)
            {
                app.Quit();
                MessageBox.Show(q.Message);
            }
            finally
            {
                app.Quit();
            }

            MessageBoxResult mboxResult = MessageBox.Show("Заказ успешно выполнен. Желаете заказать что-нибудь еще?", "Предупреждение", MessageBoxButton.YesNo);

            if (mboxResult == MessageBoxResult.No)
            {
                MainMenuUser mainMenuUser = new MainMenuUser();
                mainMenuUser.Show();
                this.Close();
            }
            connection.Close();
        }