Exemplo n.º 1
0
        // Метод для обновления содержания заказа
        public bool updateOrderContent(int client_id,
                                       string present_order_consist,
                                       string history_order_consist,
                                       decimal order_worth)
        {
            try
            {
                using (AOSDB aos_db = new AOSDB())
                {
                    // Ищем заказ в таблице заказов в БД с ID = _Order_ID 
                    AOS_BD_ORDER order_info =
                        (from item in
                             aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>()
                             .AsParallel<AOS_BD_ORDER>()
                         where item.PK_AOS_ID_ORDER == _Order_ID
                         select item).ToList<AOS_BD_ORDER>().Single();

                    order_info.FK_AOS_ID_CLIENT = client_id;
                    order_info.ORDER_PRESENT_CONSIST = present_order_consist;
                    order_info.ORDER_HISTORY_CONSIST = history_order_consist;
                    order_info.ORDER_WORTH = order_worth;

                    // Сохраняем данные
                    aos_db.SaveChanges();
                }
            }
            // Если обновление заказа не удалось
            catch (Exception)
            {
                return false;                     
            }

            return true;
        }
Exemplo n.º 2
0
        // Конструктор
        public Client(int client_id)
        {
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с клиентами в БД с ID = client_id
                AOS_KL_CLIENT client = new AOS_KL_CLIENT();
                try
                {
                    client =
                        (from item in
                             aos_db.AOS_KL_CLIENT.ToList<AOS_KL_CLIENT>()
                             .AsParallel<AOS_KL_CLIENT>()
                         where (item.PK_AOS_ID_CLIENT == client_id)
                         select item).Single();

                    // Если клиент с таким ID найден в БД   
                    _Client_ID = client.PK_AOS_ID_CLIENT;
                    _Client_FIO = client.CLIENT_FIO;
                    _Client_Phone = client.CLIENT_PHONE;                     
                }
                // Если клиент с таким ID не найден в БД
                catch (System.InvalidOperationException)
                {
                    _Client_ID = 0;
                    _Client_FIO = "anonymous";
                    _Client_Phone = "none";                    
                }             
            }
        }
Exemplo n.º 3
0
        // Конструктор
        public Product(int product_id)
        {            
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с продуктами в БД с ID = product_id
                AOS_KL_PRODUCT product =
                    (from item in 
                         aos_db.AOS_KL_PRODUCT.ToList<AOS_KL_PRODUCT>()
                         .AsParallel<AOS_KL_PRODUCT>()
                     where (item.PK_AOS_ID_PRODUCT == product_id)
                     select item).Single();

                // Заполняем свойства класса
                _Product_ID = product.PK_AOS_ID_PRODUCT;
                Product_Name.Add("RU", product.PRODUCT_NAME_RU);
                Product_Name.Add("EN", product.PRODUCT_NAME_EN);
                _Product_Class = product.FK_AOS_ID_PRODUCT_CLASS;
                Product_Info.Add("RU", product.PRODUCT_INFO_RU);
                Product_Info.Add("EN", product.PRODUCT_INFO_EN);
                Product_Recommendation.Add("RU", product.PRODUCT_RECOMMEND_RU);
                Product_Recommendation.Add("EN", product.PRODUCT_RECOMMEND_EN);
                Product_Consist.Add("RU", product.PRODUCT_CONSIST_RU);
                Product_Consist.Add("EN", product.PRODUCT_CONSIST_EN);                
                _Product_Img_List.Add(Regex.Matches(product.PRODUCT_IMG_ID,
                                @"\w+_small.\w{3}")[0].ToString());
                _Product_Img_List.Add(Regex.Matches(product.PRODUCT_IMG_ID,
                                @"\w+_0.\w{3}")[0].ToString());
                _Product_Img_List.Add(Regex.Matches(product.PRODUCT_IMG_ID,
                                @"\w+_1.\w{3}")[0].ToString());                                
                Product_Amount.Add("RU", product.PRODUCT_AMOUNT_RU);
                Product_Amount.Add("EN", product.PRODUCT_AMOUNT_EN);
                string dummy = product.PRODUCT_PRICE.ToString();
                _Product_Price = dummy.Remove(dummy.Length - 3, 2);                
            }
        }
Exemplo n.º 4
0
        public void dbReadWriteTest()
        {
            bool actual_result = false;
            using (AOSDB aos_db = new AOSDB())
            {
                // Формируем объект класса AOS_KL_PRODUCT_CLASS
                AOS_KL_PRODUCT_CLASS product_class = new AOS_KL_PRODUCT_CLASS();
                product_class.PK_AOS_ID_PRODUCT_CLASS = 4;
                product_class.PRODUCT_CLASS_NAME_RU = "Напитки";
                product_class.PRODUCT_CLASS_NAME_EN = "Drinks";

                // Добавляем объект и сохраняем его в БД
                aos_db.AOS_KL_PRODUCT_CLASS.Add(product_class);
                aos_db.SaveChanges();

                // Проверяем добавилась ли строка в таблицу 
                // AOS_KL_PRODUCT_CLASS            
                foreach (var item in aos_db.AOS_KL_PRODUCT_CLASS)
                    if (item == product_class)
                        actual_result = true;
                Assert.AreEqual(true, actual_result);

                // Удаляем строку из БД
                aos_db.AOS_KL_PRODUCT_CLASS.Remove(product_class);
                aos_db.SaveChanges();

                // Проверяем удалилась ли строка из таблицы
                // AOS_KL_PRODUCT_CLASS
                actual_result = false;
                foreach (var item in aos_db.AOS_KL_PRODUCT_CLASS)
                    if (item == product_class)
                        actual_result = true;
                Assert.AreNotEqual(true, actual_result);
            }
        }
Exemplo n.º 5
0
 // Конструктор
 public Marketing()
 {
     using (AOSDB aos_db = new AOSDB())
     {
         Marketing_List =
             (from item in
                  aos_db.AOS_BD_MARKETING
              select item).ToList<AOS_BD_MARKETING>();                
     }
 }
Exemplo n.º 6
0
        // Метод для возврата статуса заказа
        public string getOrderState()
        {
            string order_state;
            using (AOSDB aos_db = new AOSDB())
            {
                // Ищем заказ в таблице заказов в БД с ID = _Order_ID 
                AOS_BD_ORDER order_info =
                    (from item in
                         aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>()
                         .AsParallel<AOS_BD_ORDER>()
                     where item.PK_AOS_ID_ORDER == _Order_ID
                     select item).ToList<AOS_BD_ORDER>().Single();

                order_state = order_info.ORDER_STATE;
            }

            return order_state;
        }
Exemplo n.º 7
0
        // Метод для возврата скидки клиента
        public string getClientDiscount()
        {
            string client_discount;
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с клиентами в БД с ID = _Client_ID
                AOS_KL_CLIENT client =
                    (from item in
                         aos_db.AOS_KL_CLIENT.ToList<AOS_KL_CLIENT>()
                         .AsParallel<AOS_KL_CLIENT>()
                     where (item.PK_AOS_ID_CLIENT == _Client_ID)
                     select item).Single();

                client_discount = (client.CLIENT_DISCOUNT * 0.01).ToString();                
            }

            return client_discount;
        }
Exemplo n.º 8
0
        // Конструктор
        public ProductClass(byte product_class_id)
        {
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с категориями продуктов в
                // БД с ID = product_class_id
                AOS_KL_PRODUCT_CLASS product_class =
                    (from item in
                         aos_db.AOS_KL_PRODUCT_CLASS.ToList<AOS_KL_PRODUCT_CLASS>()
                         .AsParallel<AOS_KL_PRODUCT_CLASS>()
                     where (item.PK_AOS_ID_PRODUCT_CLASS == product_class_id)
                     select item).Single();

                // Заполняем свойства класса
                _Product_Class_ID = product_class.PK_AOS_ID_PRODUCT_CLASS;
                Product_Class_Name.Add("RU", product_class.PRODUCT_CLASS_NAME_RU);
                Product_Class_Name.Add("EN", product_class.PRODUCT_CLASS_NAME_EN);                
            }
        }
Exemplo n.º 9
0
        // Метод для возврата списка продуктов в таблице с продуктами в БД,
        // принадлежащих данной категории продуктов
        public List<Product> getProductList()
        {
            List<Product> product_list = new List<Product>();
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с продуктами в БД с 
                // ID категории = product_class_id
                List<AOS_KL_PRODUCT> dummy_product_list =
                    (from item in
                         aos_db.AOS_KL_PRODUCT.ToList<AOS_KL_PRODUCT>()
                         .AsParallel<AOS_KL_PRODUCT>()
                     where (item.FK_AOS_ID_PRODUCT_CLASS == _Product_Class_ID)
                     select item).ToList<AOS_KL_PRODUCT>();

                // Создаем колекцию объектов класса Product для 
                // полученного списка
                foreach (AOS_KL_PRODUCT item in dummy_product_list)
                    product_list.Add(new Product(item.PK_AOS_ID_PRODUCT));
            }

            return product_list;
        }
Exemplo n.º 10
0
        // Конструктор
        public Order(string menu_client_id, int client_id,
                     string present_order_consist, string history_order_consist,
                     decimal order_worth)
        {
            // Формируем данные заказа для сохранения в БД
            AOS_BD_ORDER order = new AOS_BD_ORDER();
            order.ORDER_EMENU_CLIENT_ID = menu_client_id;
            order.FK_AOS_ID_CLIENT = client_id;
            order.ORDER_DATE_TIME_BEGIN = DateTime.Now;
            order.ORDER_DATE_TIME_END = DateTime.Now;
            order.ORDER_PRESENT_CONSIST = present_order_consist;
            order.ORDER_HISTORY_CONSIST = history_order_consist;
            order.ORDER_STATE = "opened";
            order.ORDER_WORTH = order_worth;

            // Добавляем заказ в БД
            using (AOSDB aos_db = new AOSDB())
            {
                aos_db.AOS_BD_ORDER.Add(order);
                aos_db.SaveChanges();
                _Order_ID = order.PK_AOS_ID_ORDER;
            }
        }
Exemplo n.º 11
0
        // Метод для расчета скидки клиента,
        // исходя из общей суммы заказов клиента
        public void setClientDiscount()
        {
            // Если клиент не аноним
            if (_Client_ID != 0)
            {
                using (AOSDB aos_db = new AOSDB())
                {
                    // Список сумм всех заказов клиента в БД
                    List<string> client_order_worth =
                        (from item in
                             aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>().
                             AsParallel<AOS_BD_ORDER>()
                         where item.FK_AOS_ID_CLIENT == _Client_ID
                         select item.ORDER_WORTH.ToString()).ToList<string>();

                    // Сумма всех сумм заказов клиента
                    double client_order_sum = 0;
                    foreach (string item in client_order_worth)
                        client_order_sum += Convert.ToDouble(item);

                    // За каждые 10.000 рублей плюс 1% к скидке
                    byte discount_modifier = (byte)Math.Floor(client_order_sum / 10000);

                    // Находим элемент в таблице с клиентами в БД с ID = _Client_ID
                    AOS_KL_CLIENT client =
                        (from item in
                             aos_db.AOS_KL_CLIENT.ToList<AOS_KL_CLIENT>()
                             .AsParallel<AOS_KL_CLIENT>()
                         where (item.PK_AOS_ID_CLIENT == _Client_ID)
                         select item).Single();

                    // Устанавливаем новую скидку
                    client.CLIENT_DISCOUNT += discount_modifier;                    
                    aos_db.SaveChanges();
                }
            }
        }
Exemplo n.º 12
0
        // Метод для сохранения рейта в БД
        public bool setProductRate(byte product_rate)
        {
            try
            {
                using (AOSDB aos_db = new AOSDB())
                {
                    // Находим элемент в таблице с рейтами БД с ID = _Product_ID
                    AOS_BD_PRODUCT_RATE product_rate_list =
                        (from item in
                             aos_db.AOS_BD_PRODUCT_RATE.ToList<AOS_BD_PRODUCT_RATE>()
                             .AsParallel<AOS_BD_PRODUCT_RATE>()
                         where (item.PK_AOS_ID_PRODUCT == _Product_ID)
                         select item).Single();

                    // В зависимости от product_rate сохраняем значение в БД
                    // в таблицу с рейтами
                    switch (product_rate)
                    {
                        case 0:
                            ++product_rate_list.PRODUCT_RATE_0;
                            break;
                        case 1:
                            ++product_rate_list.PRODUCT_RATE_1;
                            break;
                        case 2:
                            ++product_rate_list.PRODUCT_RATE_2;
                            break;
                        case 3:
                            ++product_rate_list.PRODUCT_RATE_3;
                            break;
                        case 4:
                            ++product_rate_list.PRODUCT_RATE_4;
                            break;
                        case 5:
                            ++product_rate_list.PRODUCT_RATE_5;
                            break;
                        default:
                            break;
                    }

                    aos_db.SaveChanges();
                }
            }
            // Если не удалось сохранить рейт
            catch (Exception)
            {
                return false;
            }

            return true;
        }
Exemplo n.º 13
0
        // Метод для вызова сотрудника
        public bool callStaff(string emenu_client_id, string employee_id)
        {
            try
            {
                using (AOSDB aos_db = new AOSDB())
                {
                    // Формируем данные для для запроса на вызов сотрудника
                    AOS_BD_CALL_QUEUE call = new AOS_BD_CALL_QUEUE();
                    call.CALL_QUEUE_EMENU_CLIENT_ID = emenu_client_id;
                    call.FK_AOS_ID_CLIENT =
                        _Current_Client == null ? 0 : _Current_Client.Client_ID;
                    if (_Current_Order != null)
                        call.FK_AOS_ID_ORDER = _Current_Order.Order_ID;
                    call.CALL_QUEUE_DATE_TIME = DateTime.Now;
                    call.CALL_QUEUE_EMPLOYEE_ID = employee_id;

                    // Добавляем сообщение
                    aos_db.AOS_BD_CALL_QUEUE.Add(call);
                    aos_db.SaveChanges();
                }
            }
            // Если вызов не удался
            catch (Exception)
            {
                return false;
            }

            return true;
        }
Exemplo n.º 14
0
        // Метод для поиска продуктов в меню
        public List<Product> searchProduct(string search_word)
        {
            List<Product> product_list = new List<Product>();
            search_word = search_word.ToLower();
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с продуктами в БД с,
                // содержащие в имени search_word
                List<AOS_KL_PRODUCT> dummy_product_list;
                if (_lang_menu_flag == "RU")
                    dummy_product_list = 
                        (from item in
                             aos_db.AOS_KL_PRODUCT.ToList<AOS_KL_PRODUCT>()
                             .AsParallel<AOS_KL_PRODUCT>()
                         where (item.PRODUCT_NAME_RU.ToLower().Contains(search_word))
                         select item).ToList<AOS_KL_PRODUCT>();
                else
                    dummy_product_list =
                        (from item in
                             aos_db.AOS_KL_PRODUCT.ToList<AOS_KL_PRODUCT>()
                             .AsParallel<AOS_KL_PRODUCT>()
                         where (item.PRODUCT_NAME_EN.ToLower().Contains(search_word))
                         select item).ToList<AOS_KL_PRODUCT>();

                // Создаем колекцию объектов класса Product для 
                // полученного списка
                foreach (AOS_KL_PRODUCT item in dummy_product_list)
                    product_list.Add(new Product(item.PK_AOS_ID_PRODUCT));
            }

            return product_list;
        }
Exemplo n.º 15
0
        // Метод для отправки сообщения
        public bool sendMessage(string msg_destination, string message_body)
        {            
            try
            {
                using (AOSDB aos_db = new AOSDB())
                {
                    // Формируем данные для отправки сообщения
                    AOS_BD_MESSAGE message = new AOS_BD_MESSAGE();
                    message.FK_AOS_ID_CLIENT =
                        _Current_Client == null ? 0 : _Current_Client.Client_ID;
                    if (_Current_Order != null)
                        message.FK_AOS_ID_ORDER = _Current_Order.Order_ID;
                    message.MESSAGE_RECIVIER_ID = msg_destination;
                    message.MESSAGE_DATE_TIME = DateTime.Now;
                    message.MESSAGE_BODY = message_body;

                    // Добавляем сообщение
                    aos_db.AOS_BD_MESSAGE.Add(message);
                    aos_db.SaveChanges();
                }
            }
            // Если отправка не удалась
            catch (Exception)
            {
                return false;
            }

            return true;
        }
Exemplo n.º 16
0
        // Метод для закрытия заказа
        public void closeOrder()
        {
            using (AOSDB aos_db = new AOSDB())
            {
                // Ищем заказ в таблице заказов в БД с ID = _Order_ID 
                AOS_BD_ORDER order_info =
                    (from item in
                         aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>()
                         .AsParallel<AOS_BD_ORDER>()
                     where item.PK_AOS_ID_ORDER == _Order_ID
                     select item).ToList<AOS_BD_ORDER>().Single();

                order_info.ORDER_DATE_TIME_END = DateTime.Now;
                order_info.ORDER_STATE = "ended";
                order_info.ORDER_PRESENT_CONSIST = "";

                // Сохраняем данные
                aos_db.SaveChanges();
            }
        }                                      
Exemplo n.º 17
0
        public void OrderTest()
        {
            // Тест конструктора
            // Ожидаемые данные
            string expected_menu_client_id = "1";
            int expected_client_id = 23456;
            string expected_present_order_consist = "[{" + '"' + "id" + '"' + ":"
                                                     + '"' + '5' + '"' + ',' + '"'
                                                     + "count" + '"' + ':' + '"' +
                                                     '1' + '"' + "}]";
            string expected_history_order_consist = "[{" + '"' + "id" + '"' + ":"
                                                     + '"' + '5' + '"' + ',' + '"'
                                                     + "count" + '"' + ':' + '"' +
                                                     '6' + '"' + "}]";
            string expected_order_state = "opened";
            decimal expected_order_worth = 2100.00M;

            // Создаем объект заказа
            Order order = new Order(expected_menu_client_id, expected_client_id,
                                    expected_present_order_consist, expected_history_order_consist,
                                    expected_order_worth);
            // Полученные данные
            using (AOSDB aos_db = new AOSDB())
            {
                // Ищем заказ в таблице заказов в БД с ID
                // равным ID заказа
                AOS_BD_ORDER order_info =
                    (from item in
                         aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>()
                         .AsParallel<AOS_BD_ORDER>()
                     where item.PK_AOS_ID_ORDER == order.Order_ID
                     select item).ToList<AOS_BD_ORDER>().Single();

                // Утверждения
                Assert.AreEqual(expected_menu_client_id, order_info.ORDER_EMENU_CLIENT_ID);
                Assert.AreEqual(expected_client_id, order_info.FK_AOS_ID_CLIENT);
                Assert.AreEqual(expected_present_order_consist,
                    order_info.ORDER_PRESENT_CONSIST);
                Assert.AreEqual(expected_history_order_consist,
                    order_info.ORDER_HISTORY_CONSIST);
                Assert.AreEqual(expected_order_state, order.getOrderState());
                Assert.AreEqual(expected_order_worth, order_info.ORDER_WORTH);
            }

            // Тест обновления данных заказа
            // Ожидаемые данные
            expected_client_id = 34567;
            expected_present_order_consist = "[{" + '"' + "id" + '"' + ":"
                                                + '"' + '5' + '"' + ',' + '"'
                                                + "count" + '"' + ':' + '"' +
                                                '6' + '"' + "}]";
            expected_history_order_consist = "[{" + '"' + "id" + '"' + ":"
                                                + '"' + '5' + '"' + ',' + '"'
                                                + "count" + '"' + ':' + '"' +
                                                "12" + '"' + "}]";                
            expected_order_worth = 4200.00M;

            // Обновляем данные о заказе
            order.updateOrderContent(expected_client_id,
                                     expected_present_order_consist,
                                     expected_history_order_consist,
                                     expected_order_worth);
            // Полученные данные
            using (AOSDB aos_db = new AOSDB())
            {
                // Ищем заказ в таблице заказов в БД с ID
                // равным ID заказа
                AOS_BD_ORDER order_info =
                    (from item in
                         aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>()
                         .AsParallel<AOS_BD_ORDER>()
                     where item.PK_AOS_ID_ORDER == order.Order_ID
                     select item).ToList<AOS_BD_ORDER>().Single();

                // Утверждения                
                Assert.AreEqual(expected_present_order_consist,
                    order_info.ORDER_PRESENT_CONSIST);
                Assert.AreEqual(expected_history_order_consist,
                    order_info.ORDER_HISTORY_CONSIST);                
                Assert.AreEqual(expected_order_worth, order_info.ORDER_WORTH);
            }

            // Тест закрытия заказа
            // Ожидаемые данные
            expected_order_state = "ended";

            // Закрываем заказ
            order.closeOrder();
            // Полученные данные
            using (AOSDB aos_db = new AOSDB())
            {
                // Ищем заказ в таблице заказов в БД с ID
                // равным ID заказа
                AOS_BD_ORDER order_info =
                    (from item in
                         aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>()
                         .AsParallel<AOS_BD_ORDER>()
                     where item.PK_AOS_ID_ORDER == order.Order_ID
                     select item).ToList<AOS_BD_ORDER>().Single();

                // Утверждения                
                Assert.AreEqual(expected_order_state, order.getOrderState());                

                // Очищаем БД от добавленного тестового значения
                aos_db.AOS_BD_ORDER.Remove(order_info);
                aos_db.SaveChanges();
            }
        }
Exemplo n.º 18
0
        public void ClientTest()
        {
            // Тест конструктора
            // Ожидаемые данные, взяты из тестовой БД AOS.DB.test
            int expected_client_id_1 = 23456;
            string expected_client_fio_1 =
                "Новиков Павел Николаевич";
            string expected_client_phone_1 =
                "+79084682576";
            string expected_client_discount_1 = "0,05";
            int expected_client_id_2 = 0;
            string expected_client_fio_2 =
                "anonymous";
            string expected_client_phone_2 =
                "none";
            string expected_client_discount_2 = "1";

            // Полученные данные
            Client client_1 = new Client(23456);
            int actual_client_id_1 =
                client_1.Client_ID;
            string actual_client_fio_1 =
                client_1.Client_FIO;
            string actual_client_phone_1 =
                client_1.Client_Phone;
            string actual_client_discount_1 =
                client_1.getClientDiscount();
            Client client_2 = new Client(2345689);
            int actual_client_id_2 =
                client_2.Client_ID;
            string actual_client_fio_2 =
                client_2.Client_FIO;
            string actual_client_phone_2 =
                client_2.Client_Phone;
            string actual_client_discount_2 =
                client_2.getClientDiscount();

            // Утверждения
            Assert.AreEqual(expected_client_id_1, actual_client_id_1);
            Assert.AreEqual(expected_client_fio_1, actual_client_fio_1);
            Assert.AreEqual(expected_client_phone_1, actual_client_phone_1);
            Assert.AreEqual(expected_client_discount_1, actual_client_discount_1);
            Assert.AreEqual(expected_client_id_2, actual_client_id_2);
            Assert.AreEqual(expected_client_fio_2, actual_client_fio_2);
            Assert.AreEqual(expected_client_phone_2, actual_client_phone_2);
            Assert.AreEqual(expected_client_discount_2, actual_client_discount_2);

            // Тест установки размера скидки
            // Ожидаемые данные
            expected_client_discount_1 = "0,08";
            // Полученные данные
            client_1.setClientDiscount();
            actual_client_discount_1 =
                client_1.getClientDiscount();

            // Утверждения
            Assert.AreEqual(expected_client_discount_1, actual_client_discount_1);

            // Возвращаем значения в БД к прежним
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с клиентами в БД с ID = 23456
                AOS_KL_CLIENT client =
                    (from item in
                         aos_db.AOS_KL_CLIENT.ToList<AOS_KL_CLIENT>()
                         .AsParallel<AOS_KL_CLIENT>()
                     where (item.PK_AOS_ID_CLIENT == 23456)
                     select item).Single();

                // Возвращаем значение на старте теста
                client.CLIENT_DISCOUNT = 5;
                aos_db.SaveChanges();
            }
        }
Exemplo n.º 19
0
        public void ProductTest()
        {   
            // Тест конструктора             
            // Ожидаемые значения (взяты из тестовой БД AOS.DB.test)
            int expected_product_id = 5;                    
            string expected_product_name_ru =
                "Салат Мегаполис";
            string expected_product_name_en =
                "Salad Megapolis";
            int expected_product_class = 1;                    
            string expected_product_info_ru =
                "Ломтики нежной телятины, помидоры, огурцы, "
                    + "перец сладкий, листья салата, чеснок, заправлен "
                    + "фирменным соусом.";
            string expected_product_info_en =
                "Slices of tender veal, tomatoes, cucumbers, "
                    + "peppers, lettuce, garlic, filled with special sauce.";
            string expected_product_recommend_ru =
                "Ломтики нежной телятины, помидоры, огурцы, "
                    + "перец сладкий, листья салата, чеснок, заправлен "
                    + "фирменным соусом.";
            string expected_product_recommend_en =
                "Slices of tender veal, tomatoes, cucumbers, "
                    + "peppers, lettuce, garlic, filled with special sauce.";
            string expected_product_consist_ru =
                "Ломтики нежной телятины, помидоры, огурцы, "
                    + "перец сладкий, листья салата, чеснок, заправлен "
                    + "фирменным соусом.";
            string expected_product_consist_en =
                "Slices of tender veal, tomatoes, cucumbers, "
                    + "peppers, lettuce, garlic, filled with special sauce.";
            List<string> expected_product_img_list = new List<string>();
            expected_product_img_list.Add("megapolis_small.jpg");
            expected_product_img_list.Add("megapolis_0.jpg");
            expected_product_img_list.Add("megapolis_1.jpg");
            byte expected_product_rate;            
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с рейтами БД с ID = _Product_ID
                AOS_BD_PRODUCT_RATE product_rate_list =
                    (from item in
                         aos_db.AOS_BD_PRODUCT_RATE.ToList<AOS_BD_PRODUCT_RATE>()
                         .AsParallel<AOS_BD_PRODUCT_RATE>()
                     where (item.PK_AOS_ID_PRODUCT == 5)
                     select item).Single();

                // Считаем общий бал
                int rate_sum = product_rate_list.PRODUCT_RATE_0 * (-1)
                                    + product_rate_list.PRODUCT_RATE_1
                                    + product_rate_list.PRODUCT_RATE_2 * 2
                                    + product_rate_list.PRODUCT_RATE_3 * 3
                                    + product_rate_list.PRODUCT_RATE_4 * 4
                                    + product_rate_list.PRODUCT_RATE_5 * 5;
                // Считаем количество раз, когда ставился рейт
                int rate_count = product_rate_list.PRODUCT_RATE_0
                                    + product_rate_list.PRODUCT_RATE_1
                                    + product_rate_list.PRODUCT_RATE_2
                                    + product_rate_list.PRODUCT_RATE_3
                                    + product_rate_list.PRODUCT_RATE_4
                                    + product_rate_list.PRODUCT_RATE_5;
                expected_product_rate = (byte)Math.Ceiling((double)(rate_sum / rate_count));
            }
            string expected_product_amount_ru = "200 г";
            string expected_product_amount_en = "200 g";
            string expected_product_price = "350,00";

            // Полученные значения
            Product test_product = new Product(5);
            int actual_product_id =
                test_product.Product_ID;
            string actual_product_name_ru =
                test_product.getProductName("RU");
            string actual_product_name_en =
                test_product.getProductName("EN");
            int actual_product_class =
                test_product.Product_Class;
            string actual_product_info_ru =
                test_product.getProductInfo("RU");
            string actual_product_info_en =
                test_product.getProductInfo("EN");
            string actual_product_recommend_ru =
                test_product.getProductRecommendation("RU");
            string actual_product_recommend_en =
                test_product.getProductRecommendation("EN");
            string actual_product_consist_ru =
                test_product.getProductConsist("RU");
            string actual_product_consist_en =
                test_product.getProductConsist("EN");
            List<string> actual_product_img_list =
                test_product.Product_Img_List;
            byte actual_product_rate =
                test_product.getProductRate();
            string actual_product_amount_ru =
                test_product.getProductAmount("RU");
            string actual_product_amount_en =
                test_product.getProductAmount("EN");
            string actual_product_price =
                test_product.Product_Price;

            // Утверждения
            Assert.AreEqual(expected_product_id, actual_product_id);
            Assert.AreEqual(expected_product_name_ru, actual_product_name_ru);
            Assert.AreEqual(expected_product_name_en, actual_product_name_en);
            Assert.AreEqual(expected_product_class, actual_product_class);
            Assert.AreEqual(expected_product_info_ru, actual_product_info_ru);
            Assert.AreEqual(expected_product_info_en, actual_product_info_en);
            Assert.AreEqual(expected_product_recommend_ru, actual_product_recommend_ru);
            Assert.AreEqual(expected_product_recommend_en, actual_product_recommend_en);
            Assert.AreEqual(expected_product_consist_ru, actual_product_consist_ru);
            Assert.AreEqual(expected_product_consist_en, actual_product_consist_en);
            Assert.AreEqual(expected_product_img_list, actual_product_img_list);
            Assert.AreEqual(expected_product_rate, actual_product_rate);
            Assert.AreEqual(expected_product_amount_ru, actual_product_amount_ru);
            Assert.AreEqual(expected_product_amount_en, actual_product_amount_en);
            Assert.AreEqual(expected_product_price, actual_product_price);

            // Тест установки нового рейта продукта
            // Устанавливаем новый рейт продукта
            test_product.setProductRate(0);
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с рейтами БД с ID = _Product_ID
                AOS_BD_PRODUCT_RATE product_rate_list =
                    (from item in
                         aos_db.AOS_BD_PRODUCT_RATE.ToList<AOS_BD_PRODUCT_RATE>()
                         .AsParallel<AOS_BD_PRODUCT_RATE>()
                     where (item.PK_AOS_ID_PRODUCT == 5)
                     select item).Single();

                // Считаем общий бал
                int rate_sum = product_rate_list.PRODUCT_RATE_0 * (-1)
                                    + product_rate_list.PRODUCT_RATE_1
                                    + product_rate_list.PRODUCT_RATE_2 * 2
                                    + product_rate_list.PRODUCT_RATE_3 * 3
                                    + product_rate_list.PRODUCT_RATE_4 * 4
                                    + product_rate_list.PRODUCT_RATE_5 * 5;
                // Считаем количество раз, когда ставился рейт
                int rate_count = product_rate_list.PRODUCT_RATE_0
                                    + product_rate_list.PRODUCT_RATE_1
                                    + product_rate_list.PRODUCT_RATE_2
                                    + product_rate_list.PRODUCT_RATE_3
                                    + product_rate_list.PRODUCT_RATE_4
                                    + product_rate_list.PRODUCT_RATE_5;
                expected_product_rate = (byte)Math.Ceiling((double)(rate_sum / rate_count));
            }
            actual_product_rate =
                test_product.getProductRate();

            // Утверждения
            Assert.AreEqual(expected_product_rate, actual_product_rate);
        }
Exemplo n.º 20
0
        // Метод для получения рейта продукта
        public byte getProductRate()
        {
            byte Product_Rate = 0;
            using (AOSDB aos_db = new AOSDB())
            {
                // Находим элемент в таблице с рейтами БД с ID = _Product_ID
                AOS_BD_PRODUCT_RATE product_rate_list =
                    (from item in
                         aos_db.AOS_BD_PRODUCT_RATE.ToList<AOS_BD_PRODUCT_RATE>()
                         .AsParallel<AOS_BD_PRODUCT_RATE>()
                     where (item.PK_AOS_ID_PRODUCT == _Product_ID)
                     select item).Single();

                // Считаем общий бал
                int rate_sum = product_rate_list.PRODUCT_RATE_0 * (-1)
                                    + product_rate_list.PRODUCT_RATE_1
                                    + product_rate_list.PRODUCT_RATE_2 * 2
                                    + product_rate_list.PRODUCT_RATE_3 * 3
                                    + product_rate_list.PRODUCT_RATE_4 * 4
                                    + product_rate_list.PRODUCT_RATE_5 * 5;
                // Считаем количество раз, когда ставился рейт
                int rate_count = product_rate_list.PRODUCT_RATE_0
                                    + product_rate_list.PRODUCT_RATE_1
                                    + product_rate_list.PRODUCT_RATE_2
                                    + product_rate_list.PRODUCT_RATE_3
                                    + product_rate_list.PRODUCT_RATE_4
                                    + product_rate_list.PRODUCT_RATE_5;
                if (rate_count != 0)
                    Product_Rate = (byte)Math.Ceiling((double)(rate_sum / rate_count));
            }

            return Product_Rate;
        }
Exemplo n.º 21
0
        public void MenuSessionTest_1()
        {
            // Тест конструктора
            MenuSession menu_session =
                new MenuSession();
            // Переключаем язык
            menu_session.switchMenuLang();
            // Ожидаемые данные
            string expected_lang_menu_flag = "EN";
            // Полученные данные
            string actual_lang_menu_flag =
                menu_session.lang_menu_flag;
            // Утверждения
            Assert.AreEqual(expected_lang_menu_flag,
                            actual_lang_menu_flag);
            // Переключаем язык
            menu_session.switchMenuLang();
            // Ожидаемые данные
           expected_lang_menu_flag = "RU";
            // Полученные данные
            actual_lang_menu_flag =
                menu_session.lang_menu_flag;
            // Утверждения
            Assert.AreEqual(expected_lang_menu_flag,
                            actual_lang_menu_flag);

            // Тест авторизации клиента 
            // Ожидаемые данные
            Client expected_client = new Client(0);
            bool expected_auth_flag = false;
            // Попытка авторизации в меню существующего клиента
            bool actual_auth_flag = menu_session.tryUserAuth(12);            
            // Утверждения
            Assert.AreEqual(expected_client.Client_FIO,
                menu_session.Current_Client.Client_FIO);
            Assert.AreEqual(expected_auth_flag, actual_auth_flag);
            // Ожидаемые данные
            expected_client = new Client(34567);
            expected_auth_flag = true;
            // Попытка авторизации в меню существующего клиента
            actual_auth_flag = menu_session.tryUserAuth(34567);
            // Утверждения
            Assert.AreEqual(expected_client.Client_FIO,
                menu_session.Current_Client.Client_FIO);
            Assert.AreEqual(expected_auth_flag, actual_auth_flag);

            // Тест создания заказа
            // Ожидаемые данные
            string expected_menu_client_id = "1";
            int expected_client_id = menu_session.Current_Client.Client_ID;
            string expected_present_order_consist = "[{" + '"' + "id" + '"' + ":"
                                                     + '"' + '5' + '"' + ',' + '"'
                                                     + "count" + '"' + ':' + '"' +
                                                     '1' + '"' + "}]";
            string expected_history_order_consist = "[{" + '"' + "id" + '"' + ":"
                                                     + '"' + '5' + '"' + ',' + '"'
                                                     + "count" + '"' + ':' + '"' +
                                                     '6' + '"' + "}]";
            string expected_order_state = "opened";
            decimal expected_order_worth = 2100.00M;
            // Создаем заказ
            menu_session.createOrder(expected_menu_client_id, expected_client_id,
                                     expected_present_order_consist,
                                     expected_history_order_consist,
                                     expected_order_worth);
            // Утверждения
            Assert.AreEqual(expected_order_state,
                menu_session.Current_Order.getOrderState());

            // Тест отправки сообщения
            // Ожидаемые данные
            int expected_msg_client_id = 34567;
            int expected_msg_order_id = menu_session.Current_Order.Order_ID;
            string expected_msg_reciever = "cook";
            string expected_msg_body = "Сообщене для повара";
            // Посылаем сообщение
            menu_session.sendMessage(expected_msg_reciever, expected_msg_body);
            using (AOSDB aos_db = new AOSDB())
            {
                AOS_BD_MESSAGE message =
                    (from item in aos_db.AOS_BD_MESSAGE
                     select item).Single();

                // Утверждения
                Assert.AreEqual(expected_msg_client_id, 
                                message.FK_AOS_ID_CLIENT);
                Assert.AreEqual(expected_msg_order_id,
                                message.FK_AOS_ID_ORDER);
                Assert.AreEqual(expected_msg_reciever,
                                message.MESSAGE_RECIVIER_ID);
                Assert.AreEqual(expected_msg_body,
                                message.MESSAGE_BODY);

                // Очищаем таблицу от тестовых данных
                aos_db.AOS_BD_MESSAGE.Remove(message);
                aos_db.SaveChanges();
            }

            // Тест запроса на вызов сотрудника
            // Ожидаемые данные
            string expected_emenu_client_id = "0.1apb5njklfp";
            int expected_call_client_id = 34567;
            int expected_call_order_id = menu_session.Current_Order.Order_ID;
            string expected_employee_id = "admin";
            // Посылаем запрос на вызов сотрудника
            menu_session.callStaff(expected_emenu_client_id,
                                   expected_employee_id);
            using (AOSDB aos_db = new AOSDB())
            {
                AOS_BD_CALL_QUEUE call =
                    (from item in aos_db.AOS_BD_CALL_QUEUE
                     select item).Single();

                // Утверждения
                Assert.AreEqual(expected_emenu_client_id,
                                call.CALL_QUEUE_EMENU_CLIENT_ID);
                Assert.AreEqual(expected_call_client_id,
                                call.FK_AOS_ID_CLIENT);
                Assert.AreEqual(expected_call_order_id,
                                call.FK_AOS_ID_ORDER);
                Assert.AreEqual(expected_employee_id,
                                call.CALL_QUEUE_EMPLOYEE_ID);      

                // Очищаем таблицу от тестовых данных
                aos_db.AOS_BD_CALL_QUEUE.Remove(call);
                aos_db.SaveChanges();
            }

            // Просим счет
            menu_session.getBill();
        }