public void IsAvailableTest()
 {
     Program.ClearInformation();
     IRepository<Product> _productRepository = new ProductRepository();
     Product product = new Product(1, "House", "MOPRa,1", "saled");
     _productRepository.Add(product);
     bool actual = Realtor.IsAvailable(product);
     bool expected = false;
     Assert.AreEqual(expected, actual);
     Program.ClearInformation();
 }
 public void DealTest()
 {
     Program.ClearInformation();
     IRepository<Product> _productRepository = new ProductRepository();
     Product dealingProduct = new Product(1, "House", "MOPRa,1", "for sale");
     _productRepository.Add(dealingProduct);
     Realtor.Deal(_productRepository, dealingProduct.id);
     Product expected = new Product(1, "House", "MOPRa,1", "saled");
     Product actual = _productRepository.GetItem(dealingProduct.id);
     Assert.AreEqual(true, true);
 }
        /// <summary>
        /// Method check, if Product is Available
        /// </summary>
        /// <param name="product"></param>
        /// <returns></returns>
        public static bool IsAvailable(Product product)
        {
            IRepository<Product> _productRepository = new ProductRepository();

            if (_productRepository.GetItem(product.id).status == "saled")
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        public void RepositoryGetTest()
        {
            Program.ClearInformation();
            IRepository<Product> _productRepository = new ProductRepository();
            Product[] product = new Product[2];
            product[0] = new Product(1, "House", "MOPRa,1", "for sale");
            product[1] = new Product(2, "House", "MOPRa,2", "for sale");
            _productRepository.Add(product[0]);
            _productRepository.Add(product[1]);

            IEnumerable<Product> productRepository = _productRepository.GetItems();
            for (int i = 1; i <= 2; i++)
            {
                Product actual = productRepository.Single(x => x.id == i);
                Assert.AreEqual(actual.id, product[i - 1].id);
                Assert.AreEqual(actual.name, product[i - 1].name);
                Assert.AreEqual(actual.status, product[i - 1].status);
                Assert.AreEqual(actual.address, product[i - 1].address);
            }
            Program.ClearInformation();
        }
 public void RepositoryUpdateTest()
 {
     Program.ClearInformation();
     IRepository<Product> _productRepository = new ProductRepository();
     Product product = new Product(1, "House", "MOPRa,1", "for sale");
     _productRepository.Add(product);
     product.status = "saled";
     _productRepository.Update(product);
     Product actual = _productRepository.GetItem(product.id);
     Product expected = new Product(1, "House", "MOPRa,1", "saled");
     Assert.AreEqual(actual.id, product.id);
     Assert.AreEqual(actual.name, product.name);
     Assert.AreEqual(actual.status, product.status);
     Assert.AreEqual(actual.address, product.address);
     Program.ClearInformation();
 }
 public void RepositoryRemoveTest()
 {
     Program.ClearInformation();
     IRepository<Product> _productRepository = new ProductRepository();
     Product product = new Product(1, "House", "MOPRa,1", "for sale");
     _productRepository.Add(product);
     _productRepository.Remove(product.id);
     Product actual = _productRepository.GetItem(product.id);
     Product expected = null;
     Assert.AreEqual(expected, actual);
     Program.ClearInformation();
 }
 partial void DeleteProduct(Product instance);
 partial void UpdateProduct(Product instance);
 partial void InsertProduct(Product instance);
 /// <summary>
 /// Method updates product status for "saled", because the Deal is done
 /// </summary>
 /// <param name="product"></param>
 /// <param name="id"></param>
 public static void Deal(IRepository<Product> product, int id)
 {
     Console.WriteLine("Consratulations! You have bought the product {0} on address {1}", product.GetItem(id).name, product.GetItem(id).address);
     Product saledProduct = new Product(id, product.GetItem(id).name, product.GetItem(id).address, "saled");
     product.Update(saledProduct);
 }
        static void AutoFilling()
        {
            Product[] product = new Product[10];
            Client[] client = new Client[10];
            Manager[] manager = new Manager[10];

            product[0] = new Product(1, "House", "Moskovskaya, 320", "for sale");
            product[1] = new Product(2, "Office", "MOPRa, 30", "for sale");
            product[2] = new Product(3, "House", "Belorusskaya, 10", "for sale");
            product[3] = new Product(4, "Bar", "MOPRa, 3", "for sale");
            product[4] = new Product(5, "House", "Leningradskaya, 35", "for sale");
            product[5] = new Product(6, "Cafe", "Molodogvardeiskaya, 70", "for sale");
            product[6] = new Product(7, "House", "Moskovskaya, 30", "for sale");
            product[7] = new Product(8, "Club", "Zelenaya, 11", "for sale");
            product[8] = new Product(9, "House", "Lugivaja, 11", "for sale");
            product[9] = new Product(10, "Pizzeria", "Pionerskaya, 4", "for sale");

            client[0] = new Client(1, "Fedor Dvinyatin");
            client[1] = new Client(2, "Alexei Volkov");
            client[2] = new Client(3, "Ivan Ivanov");
            client[3] = new Client(4, "Petr Bojko");
            client[4] = new Client(5, "Egor Valedinsky");
            client[5] = new Client(6, "Alexander Evtuh");
            client[6] = new Client(7, "Alexei Lohnitsky");
            client[7] = new Client(8, "Mokin Alexander");
            client[8] = new Client(9, "Pavlovets Sergey");
            client[9] = new Client(10, "Igor Pujko");

            manager[0] = new Manager(1, "Viktor Oniskevich");
            manager[1] = new Manager(2, "Petr Glinskij");
            manager[2] = new Manager(3, "Fedor Yakubuk");
            manager[3] = new Manager(4, "Vasily Sapon");
            manager[4] = new Manager(5, "Igor Ivanovskiy");
            manager[5] = new Manager(6, "Alexander Dubrovsky");
            manager[6] = new Manager(7, "Olga Golub");
            manager[7] = new Manager(8, "Egor Pirozhkov");
            manager[8] = new Manager(9, "Boris Zhukovich");
            manager[9] = new Manager(10, "Igor Stepanchuk");

            IRepository<Client> _clientRepository = new ClientRepository();
            IRepository<Product> _productRepository = new ProductRepository();
            IRepository<Manager> _managerRepository = new ManagerRepository();

            IEnumerable<Client> clientRepository = _clientRepository.GetItems();
            IEnumerable<Product> productRepository = _productRepository.GetItems();
            IEnumerable<Manager> managerRepository = _managerRepository.GetItems();

            foreach (var item in clientRepository)
            {
                _clientRepository.Remove(item);
            }

            foreach (var item in productRepository)
            {
                _productRepository.Remove(item);
            }

            foreach (var item in managerRepository)
            {
                _managerRepository.Remove(item);
            }

            for (int i = 0; i <= 9; i++)
            {
                _clientRepository.Add(client[i]);
                _productRepository.Add(product[i]);
                _managerRepository.Add(manager[i]);
            }
        }