예제 #1
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Orders"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Orders (customerID, weight, volume, from, to, " +
                      "startDate, endDate, orderStatus) VALUES ");
            sb.Append($"('{customerID}', '{weight}', '{volume}', '{from}', '{to}'," +
                      $" '{startDate}', '{endDate}', '{orderStatus}') ");

            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);

            //public int customerID { get; set; }
            //public double weight { get; set; }
            //public double volume { get; set; }
            //public string from { get; set; }
            //public string to { get; set; }
            //public string startDate { get; set; }
            //public string endDate { get; set; }
            //public int orderStatus { get; set; }
        }
예제 #2
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Routes"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Routes (routeStart, routeEnd, routeLength) VALUES ");

            // объявляем переменную счетчика для подсчета кол-ва итерации, чтобы в запросе на последний
            // ввод строки в таблицу не ставить "," (обеспечение правильности синтаксиса запроса SQL)
            int    count    = 0;
            string sqlQuery = null;

            foreach (Route i in routesList)
            {
                count++;
                sb.Append($"('{i.routeStart}', '{i.routeEnd}', '{i.routeLength}') ");
                if (routesList.Length != count)
                {
                    sb.Append(", ");
                }
            }

            sqlQuery = sb.ToString();
            obj.SaveData(sqlQuery);
            //throw new NotImplementedException();
        }
예제 #3
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Orders"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Orders (customerID, weight, volume, from, to, " +
                      "startDate, endDate, orderStatus) VALUES ");


            // объявляем переменную счетчика для подсчета кол-ва итерации, чтобы в запросе на последний
            // ввод строки в таблицу не ставить "," (обеспечение правильности синтаксиса запроса SQL)
            int    count    = 0;
            string sqlQuery = null;

            foreach (Order i in ordersList)
            {
                count++;
                sb.Append($"('{i.customerID}', '{i.weight}', '{i.volume}', '{i.from}', '{i.to}'," +
                          $" '{i.startDate}', '{i.endDate}', '{i.orderStatus}') ");
                if (ordersList.Count != count)
                {
                    sb.Append(", ");
                }
            }

            sqlQuery = sb.ToString();
            obj.SaveData(sqlQuery);
            //throw new NotImplementedException();
        }
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Transports"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Transports (transportType, carryingСapacity, " +
                      "bodyVolume) VALUES ");

            // объявляем переменную счетчика для подсчета кол-ва итерации, чтобы в запросе на последний
            // ввод строки в таблицу не ставить "," (обеспечение правильности синтаксиса запроса SQL)
            int    count    = 0;
            string sqlQuery = null;

            foreach (Transport i in transportsList)
            {
                count++;
                sb.Append($"('{i.transportType}', '{i.bodyWeight}', " +
                          $"'{i.bodyVolume}') ");
                if (transportsList.Length != count)
                {
                    sb.Append(", ");
                }
            }

            sqlQuery = sb.ToString();
            obj.SaveData(sqlQuery);
            //throw new NotImplementedException();
        }
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Workers"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Customers (lastName, firstName, middleName, " +
                      "birthday, iin, orderID) VALUES ");

            // объявляем переменную счетчика для подсчета кол-ва итерации, чтобы в запросе на последний
            // ввод строки в таблицу не ставить "," (обеспечение правильности синтаксиса запроса SQL)
            int    count    = 0;
            string sqlQuery = null;

            foreach (Customer i in customersList)
            {
                count++;
                sb.Append($"('{i.LastName}', '{i.FirstName}', '{i.MiddleName}', " +
                          $"'{i.birthday.Year}-{i.birthday.Month}-{i.birthday.Day}', '{i.iin}', '{i.orderID}') ");
                if (customersList.Count != count)
                {
                    sb.Append(", ");
                }
            }

            sqlQuery = sb.ToString();
            obj.SaveData(sqlQuery);
            //throw new NotImplementedException();
        }
        // Создает таблицу в БД
        public void CreateTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Creating Table --- ""Customers""");

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("CREATE TABLE Customers (");
            sb.Append(" customerID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ");
            sb.Append(" lastName NVARCHAR(50), ");
            sb.Append(" firstName NVARCHAR(50), ");
            sb.Append(" middleName NVARCHAR(50), ");
            sb.Append(" birthday DATE, ");
            sb.Append(" iin DECIMAL, ");
            sb.Append(" orderID INT, ");
            sb.Append(" registrationDate DATE NOT NULL DEFAULT CONVERT(DATE, GETDATE()) ");
            sb.Append("); ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);

            if (CustomersAddedtoDB != null)
            {
                CustomersAddedtoDB("Данные о заказчиках внесены в таблицу Customers базы данных.");
            }
            //throw new NotImplementedException();
        }
예제 #7
0
        // Создает таблицу в БД
        public void CreateTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Creating Table --- ""Employees""");

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("CREATE TABLE Employees (");
            sb.Append(" employeeID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ");
            sb.Append(" lastName NVARCHAR(50), ");
            sb.Append(" firstName NVARCHAR(50), ");
            sb.Append(" middleName NVARCHAR(50), ");
            sb.Append(" birthday DATE, ");
            sb.Append(" iin DECIMAL, ");
            sb.Append(" employmentDate DATE, ");
            sb.Append(" position NVARCHAR(50), ");
            sb.Append(" solary INT ");
            sb.Append("); ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);

            if (EmployeesAddedtoDB != null)
            {
                EmployeesAddedtoDB("Данные о сотрудниках внесены в таблицу Employees базы данных.");
            }
            //throw new NotImplementedException();
        }
        // Выполняет вывод таблицы в консоль
        public void ViewTable(IConnDataBaseSQL obj)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT * FROM Carriers ");
            string sqlQuery = sb.ToString();

            obj.ReadData(sqlQuery);
            //throw new NotImplementedException();
        }
        // вывод в строку данных маршрута из таблицы Routes БД SQL по заданному routeID
        public string ViewTableOnRouteID(IConnDataBaseSQL obj, string routeID)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT * FROM Routes ");
            sb.Append($"WHERE routeID like '{routeID}'");
            string        sqlQuery = sb.ToString();
            List <string> rowsStr  = obj.ReadData(sqlQuery);

            return(rowsStr[0]);
            //throw new NotImplementedException();
        }
예제 #10
0
        // Устнавливает счетчик на цифру кол-ва ранее созданных объектов
        public void SetCountObj(IConnDataBaseSQL obj)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT COUNT(1) FROM Orders");
            string sqlQuery = sb.ToString();

            ordersCount = obj.ReadCountRowInTable(sqlQuery);
            Console.WriteLine("\n-------------------------------------------------------------------");
            Console.WriteLine(@"Кол-во строк в tаблице ""Routes"" - " + ordersCount);
            Console.WriteLine("\n-------------------------------------------------------------------");
        }
예제 #11
0
        // Вставляет данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Routes"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Routes (routeID, routeDistance) VALUES ");
            sb.Append($"('{routeID}', '{routeDistance}') ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);
        }
예제 #12
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Employees"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Employees (lastName, firstName, middleName, birthday, iin, employmentDate, position, solary) VALUES ");
            sb.Append($"('{lastName}', '{firstName}', '{middleName}', '{birthday.Year}-{birthday.Month}-{birthday.Day}', '{iin}'," +
                      $" '{employmentDate.Year}-{employmentDate.Month}-{employmentDate.Day}', '{position}', '{solary}') ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);
        }
예제 #13
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Carriers"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Carriers (lastName, firstName, middleName, birthday, iin, " +
                      "carrierRouteID, carrierTransportsIdList) VALUES ");
            sb.Append($"('{lastName}', '{firstName}', '{middleName}', '{birthday.Year}-{birthday.Month}-{birthday.Day}', '{iin}'," +
                      $" '{carrierRoutesIdList}', '{carrierTransportsIdList}') ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);
        }
예제 #14
0
        // Создание маршрутного листа перевозчику по запросу города A в город B в БД
        public void AddRouteToСarrierRouteListByCityNamesAB(IConnDataBaseSQL obj, string routeStart, string routeEnd)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT * FROM [Routes]");
            sb.Append($"WHERE routeStart like '{routeStart}' and routeEnd like '{routeEnd}' ");
            string        sqlQuery = sb.ToString();
            List <string> rowsStr  = obj.ReadData(sqlQuery);

            //проверяем есть ли в списках маршрутов маршрут с указанными городами routeStart и routeEnd,
            //который мы хотим добавить перевозчику
            try
            {
                if (rowsStr.Count == 0)
                {
                    throw new Exception("Ошибка: маршрут с заданым номером не существует.");
                }
                if (rowsStr.Count > 1)
                {
                    throw new Exception("Ошибка: Найдено более одной записи с таким маршрутом.\n" +
                                        "Проверьте корректность записей в таблице маршрутов");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return;
            }

            string routeID = rowsStr[0].Substring(0, rowsStr[0].IndexOf(';'));

            /* каждый отдельный маршрут должен быть связан с предыдущим и последующим
             * routeEnd(1) == routeStart(2) и routeEnd(2) == routeStart(3)
             * проверяем цепь маршрутов
             * !!! реализовать после..., по мере необходимости !!!
             * пока просто вносим маршруты соблюдая описанную выше логику - цепь маршрутов
             */

            string[] tmp = new string[carrierRoutesIdList.Length + 1];
            Array.Copy(carrierRoutesIdList, tmp, carrierRoutesIdList.Length);
            Array.Resize(ref carrierRoutesIdList, (carrierRoutesIdList.Length + 1));
            Array.Copy(tmp, carrierRoutesIdList, carrierRoutesIdList.Length);
            carrierRoutesIdList[carrierRoutesIdList.Length - 1] = routeID;

            //Console.WriteLine($"маршрут {routeStart} - {routeEnd} добавлен, номер маршрута : {routeID}");
        }
예제 #15
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Transports"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Transports (transportType, bodyWeight, " +
                      "bodyVolume) VALUES ");
            sb.Append($"('{transportType}', '{bodyWeight}', " +
                      $"'{bodyVolume}') ");

            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);
        }
예제 #16
0
        public void ViewTableOnRouteID(IConnDataBaseSQL obj, int routeID)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT * FROM Routes ");
            sb.Append("WHERE routeID=" + routeID);
            string sqlQuery = sb.ToString();

            List <string> rowsStr = obj.ReadData(sqlQuery);

            foreach (string i in rowsStr)
            {
                Console.WriteLine(i);
            }
            //throw new NotImplementedException();
        }
예제 #17
0
        // Выполняет вывод таблицы в консоль
        public void ViewTable(IConnDataBaseSQL obj)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT * FROM Routes ");
            string sqlQuery = sb.ToString();

            // получаем массив из строк считанный из таблицы и выводим в консоль
            List <string> rowsStr = obj.ReadData(sqlQuery);

            foreach (string i in rowsStr)
            {
                Console.WriteLine(i);
            }
            //throw new NotImplementedException();
        }
        // Создает таблицу в БД
        public void CreateTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Creating Table --- ""Transports""");

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("CREATE TABLE Transports (");
            sb.Append(" transportID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ");
            sb.Append(" transportType NVARCHAR(50), ");
            sb.Append(" carryingСapacity INT, ");
            sb.Append(" bodyVolume INT ");
            sb.Append("); ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);

            //throw new NotImplementedException();
        }
예제 #19
0
        // Создание списка транспортных средств перевозчика
        public void AddTransportToTransportsList(IConnDataBaseSQL obj, int transportID)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT transportID FROM [Transports]");
            string        sqlQuery = sb.ToString();
            List <string> rowsStr  = obj.ReadData(sqlQuery);

            //проверяем есть ли в списках транспортных средств транспорт под номером,
            //который мы хотим добавить перевозчику
            try
            {
                //foreach (string i in rowsStr)
                //    Console.WriteLine((Convert.ToInt32(i.Substring(0, i.IndexOf(';')))));

                int countMatch = 0;
                foreach (string i in rowsStr)
                {
                    if ((Convert.ToInt32(i.Substring(0, i.IndexOf(';')))) == transportID)
                    {
                        countMatch++;
                    }
                }
                if (countMatch == 0)
                {
                    throw new Exception("Ошибка: транспорта с заданым номером не существует.");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return;
            }

            int[] tmp = new int[carrierTransportsIdList.Length + 1];
            Array.Copy(carrierTransportsIdList, tmp, carrierTransportsIdList.Length);
            Array.Resize(ref carrierTransportsIdList, (carrierTransportsIdList.Length + 1));
            Array.Copy(tmp, carrierTransportsIdList, carrierTransportsIdList.Length);
            carrierTransportsIdList[carrierTransportsIdList.Length - 1] = transportID;

            //Console.WriteLine($"транспорт за номером {transportID} добавлен");
        }
예제 #20
0
        // Создает таблицу в БД
        public void CreateTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Creating Table --- ""Routes""");

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("CREATE TABLE Routes (");
            sb.Append(" routeID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ");
            sb.Append(" routeStart NVARCHAR(50), ");
            sb.Append(" routeEnd NVARCHAR(50), ");
            sb.Append(" routeLength INT DEFAULT NULL ");
            sb.Append("); ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);

            //throw new NotImplementedException();
        }
예제 #21
0
        // Вносит данные в таблицу БД
        public void InsertTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Insert Data to table ""Routes"" about "
                              + Convert.ToString(this.GetType()).Substring(22));

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("INSERT INTO Routes (routeID, routeStart, routeEnd, routeDistance) VALUES ");

            // объявляем переменную счетчика для подсчета кол-ва итерации, чтобы в запросе на последний
            // ввод строки в таблицу не ставить "," (обеспечение правильности синтаксиса запроса SQL)
            int    count    = 0;
            string sqlQuery = null;

            // === вариант через цикл foreach ===
            foreach (Route i in arrRoutes)
            {
                count++;
                sb.Append($"('{i.routeID}', '{i.routeStart}', '{i.routeEnd}', '{i.routeDistance}') ");
                if (arrRoutes.Length != count)
                {
                    sb.Append(", ");
                }
            }

            // === вариант через цикл for ===
            //for (int i = 0; i < rowNum; i++)
            //    {
            //        for (int j = 0; j < columnNum; j++)
            //        {
            //            count++;
            //            sb.Append($"('{arrRoutes[i, j].routeID}', '{arrRoutes[i, j].routeStart}', '{arrRoutes[i, j].routeEnd}', '{arrRoutes[i, j].routeDistance}') ");
            //            if (arrRoutes.Length != count) sb.Append(", ");
            //        }
            //    }

            sqlQuery = sb.ToString();
            obj.SaveData(sqlQuery);
            //throw new NotImplementedException();
        }
예제 #22
0
        // Создание маршрутного листа перевозчику по запросу routeID в БД
        public void AddRouteToСarrierRouteListByRouteID(IConnDataBaseSQL obj, string routeID)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT routeID FROM [Routes]");
            string        sqlQuery = sb.ToString();
            List <string> rowsStr  = obj.ReadData(sqlQuery);

            //проверяем есть ли в списках маршрутов маршрут под номером,
            //который мы хотим добавить перевозчику
            try
            {
                int countMatch = 0;
                foreach (string i in rowsStr)
                {
                    if (i.Substring(0, i.IndexOf(';')) == routeID)
                    {
                        countMatch++;
                    }
                }
                if (countMatch == 0)
                {
                    throw new Exception("Ошибка: маршрут с заданым номером не существует.");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return;
            }

            Console.WriteLine($"маршрут за номером {routeID} добавлен");

            int[] tmp = new int[carrierRoutesIdList.Length + 1];
            Array.Copy(carrierRoutesIdList, tmp, carrierRoutesIdList.Length);
            Array.Resize(ref carrierRoutesIdList, (carrierRoutesIdList.Length + 1));
            Array.Copy(tmp, carrierRoutesIdList, carrierRoutesIdList.Length);
            carrierRoutesIdList[carrierRoutesIdList.Length - 1] = routeID;
        }
예제 #23
0
        // Выполняет вывод таблицы в консоль
        public void ViewTable(IConnDataBaseSQL obj)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("SELECT * FROM Routes ");
            sb.Append("ORDER BY routeStart ");
            string sqlQuery = sb.ToString();

            // получаем массив из строк считанный из таблицы и выводим в консоль
            List <string> rowsStr = obj.ReadData(sqlQuery);

            for (int i = 0; i != rowsStr.Count; i++)
            {
                Console.Write(rowsStr[i] + "\t\t\t\t");
                if (i % 3 == 0)
                {
                    Console.WriteLine();
                }
            }
            //throw new NotImplementedException();
        }
        // Создает таблицу в БД
        public void CreateTable(IConnDataBaseSQL obj)
        {
            Console.WriteLine(@"Creating Table --- ""Carriers""");

            StringBuilder sb = new StringBuilder();

            sb.Append("USE LogisticsOVA; ");
            sb.Append("CREATE TABLE Carriers (");
            sb.Append(" carrierID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ");
            sb.Append(" lastName NVARCHAR(50), ");
            sb.Append(" firstName NVARCHAR(50), ");
            sb.Append(" middleName NVARCHAR(50), ");
            sb.Append(" birthday DATE, ");
            sb.Append(" iin DECIMAL, ");
            sb.Append(" carrierRouteID INT DEFAULT NULL, ");
            sb.Append(" carrierTransportID INT DEFAULT NULL ");
            sb.Append("); ");
            string sqlQuery = sb.ToString();

            obj.SaveData(sqlQuery);

            //throw new NotImplementedException();
        }