Пример #1
0
        public void AddTest()
        {
            var col = new MyNewCollection("TestCollection", 10);

            col.Add((Food) new Food().CreateRandom());
            Assert.AreEqual(11, col.Count);
        }
Пример #2
0
        public void AddRandomTest()
        {
            var col = new MyNewCollection("TestCollection", 10);

            col.AddRandom();
            Assert.AreEqual(11, col.Count);
        }
Пример #3
0
        public void IndexSetTest()
        {
            var  col      = new MyNewCollection("TestCollection", 10);
            Food testItem = (Food) new Food().CreateRandom();

            col[0] = testItem;
            Assert.AreEqual(testItem, col[0]);
        }
Пример #4
0
 public static void GetMarket(MyNewCollection collection)
 {
     Console.WriteLine("Выбран магазин " + collection.Name);
     collection.Print();
     Console.WriteLine("1-Работа с продуктами");
     Console.WriteLine("2-Очистить магазин");
     Console.WriteLine("3-Добавить продукты в магазин");
     CollectionAction(collection);
 }
Пример #5
0
        public void CollectionReferenceChangedEventTest()
        {
            var col1    = new MyNewCollection("FirstCol", 10);
            var journal = new Journal();

            col1.CollectionReferenceChanged += journal.OnCollectionReferenceChanged;
            col1[5] = (Food) new Food().CreateRandom();
            Assert.IsTrue(journal.ToString().Contains("Изменена ссылка"));
        }
Пример #6
0
 /// <summary>
 /// Включение подписок на события
 /// </summary>
 /// <param name="collection"></param>
 static void IncludeDependences(MyNewCollection collection)
 {
     collection.CollectionProductChanged      += new CollectionHandler(journal.CollectionProductChanged);
     collection.DiscountProductIsEnd          += new Discounter(journal.ProductStorageLifeEnd);
     collection.CollectionProductCountChanged += new CollectionHandler(journal.CollectionProductCountChanged);
     FoodProduct.DiscountChange += new Discounter(journal.ProductDiscountChanged);
     collection.Add(new IndustrialProduct("быдых", 100, 1000, 10, DateTime.Now, 20));
     FillCollection(collection);
 }
Пример #7
0
        /// <summary>
        /// Заполненик коллекции продуктами
        /// </summary>
        /// <param name="coll"></param>
        static void FillCollection(MyNewCollection coll)
        {
            List <Product> prod = Generator.Generator.generate();

            for (int i = 0; i < prod.Count; i++)
            {
                coll.Add(prod[i]);
            }
        }
Пример #8
0
        public void SaveToAccess(string about, MyNewCollection productCollection, Journal journal)
        {
            try
            {
                OleDbConnection connection =
                    new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Market.mdb");
                connection.Open();
                OleDbCommand command;
                if (productCollection.backups == 1)
                {
                    string query =
                        $"INSERT INTO [Market] ([market_name],[count_products],[count_backups],[count_offedproducts]) VALUES ('{productCollection.Name}',{productCollection.Count},{productCollection.backups},{journal.DeadProducts.Count})";

                    command = new OleDbCommand(query, connection);
                    command.ExecuteNonQuery();
                    command.Dispose();
                    foreach (var product in productCollection)
                    {
                        var    item = (FoodProduct)product;
                        string add  =
                            $"INSERT INTO [Products] ( [name_product],[storage_life],[price],[date_production],[discount],[dead],[market_name] ) VALUES ( '{item.Name}',{item.StorageLife},{(int)item.Price},'{item.DateProduction}',{item.PercentDiscount},{item.ProductLifeIsDead},'{productCollection.Name}')";

                        command = new OleDbCommand(add, connection);

                        command.ExecuteNonQuery();
                    }
                    command.Dispose();
                }
                else
                {
                    string query =
                        $"UPDATE Market SET count_backups ={productCollection.backups},count_products ={productCollection.Count},count_offedproducts ={journal.DeadProducts.Count} WHERE market_name ='{productCollection.Name}'";
                    command = new OleDbCommand(query, connection);
                    command.ExecuteNonQuery();
                    Console.WriteLine("Информация о магазине в базе данных обновлена");
                    foreach (var product in productCollection)
                    {
                        var item = (FoodProduct)product;
                        item.Check();

                        string add =
                            $"UPDATE Products SET storage_life={item.StorageLife},price={(int)item.Price},discount={item.PercentDiscount},dead={item.isOffed} WHERE name_product='{item.Name}'";
                        command = new OleDbCommand(add, connection);
                        command.ExecuteNonQuery();
                    }
                    Console.WriteLine("Информация о продуктах обновлена");
                }
                Console.WriteLine("База данных сохранена в Market.mdb");
                connection.Close();
                connection.Dispose();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Пример #9
0
        public void CollectionCountChangedEventTest()
        {
            var col1    = new MyNewCollection("FirstCol", 10);
            var journal = new Journal();

            col1.CollectionCountChanged += journal.OnCollectionCountChanged;
            col1.Remove(5);
            col1.AddRandom();
            col1.Add((Food) new Food().CreateRandom());
            Assert.IsTrue(journal.ToString().Contains("Удаление"));
            Assert.IsTrue(journal.ToString().Contains("Добавление"));
        }
Пример #10
0
        public static void Actions(MyNewCollection collection)
        {
            collection.Print();
            Console.WriteLine("1- Выбрать товар");
            Console.WriteLine("2- Сортировка товара по цене");
            Console.WriteLine("3- Удалить товар");

            switch (Console.ReadLine())
            {
            case "1":
                Console.WriteLine("Введите индекс товара");
                try
                {
                    int     index   = InputValidator.InputPositive();
                    Product product = collection[index];
                    string  name    = Console.ReadLine();
                    string price
                    product.ChangeProduct();

                    collection.ChangeProduct(index, product);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Товара нет в списке");
                }

                Actions(collection);
                break;

            case "2":
                collection.SortByPrice();
                collection.Print();
                Actions(collection);
                break;

            case "3":
                try
                {
                    int     index   = InputValidator.InputPositive();
                    Product product = collection[index];
                    collection.Remove(product);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Товара нельзя удалить");
                }
                break;

            default:
                Actions(collection);
                break;
            }
        }
Пример #11
0
        public void RemoveErrorTest()
        {
            var col = new MyNewCollection("TestCollection", 10);

            try
            {
                col.Remove(10);
                Assert.Fail();
            }
            catch
            {
            }
        }
Пример #12
0
        public void SortSerialize(MyNewCollection collection, string typefile)
        {
            try
            {
                FileStream fs = new FileStream($"{typefile}.xml", FileMode.OpenOrCreate);

                fs.Close();
                fs.Dispose();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }
Пример #13
0
        public MyNewCollection Deserialize(string file)
        {
            BinaryFormatter formatter = new BinaryFormatter();

            try
            {
                FileStream      fs         = new FileStream(file, FileMode.OpenOrCreate);
                MyNewCollection collection = (MyNewCollection)formatter.Deserialize(fs);
                fs.Close();
                fs.Dispose();
                return(collection);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Пример #14
0
        public void Serialize(MyNewCollection collection, string colname, Journal journal)
        {
            BinaryFormatter formatter = new BinaryFormatter();

            try
            {
                FileStream fs = new FileStream($"{colname}.dat", FileMode.OpenOrCreate);
                formatter.Serialize(fs, collection);
                fs.Close();
                fs.Dispose();
                Backup(colname);
                SaveToAccess(collection.Name, collection, journal);
                collection.backups++;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Пример #15
0
        public static void CollectionAction(MyNewCollection collection)
        {
            switch (Console.ReadLine())
            {
            case "1":
                Actions(collection);
                break;

            case "2":
                collection.Clear();
                break;

            case "3":
                FillCollection(collection);
                break;

            default:
                Console.WriteLine("Вы выбрали неверный ответ");
                CollectionAction(collection);
                break;
            }
        }
Пример #16
0
        public void NameTest()
        {
            var col = new MyNewCollection("TestCollection", 10);

            Assert.AreEqual("TestCollection", col.Name);
        }
Пример #17
0
        public void ConstructorTest()
        {
            var col = new MyNewCollection("TestCollection", 10);

            Assert.AreEqual(10, col.Count);
        }