示例#1
0
        public void TestBasicReisAddGetUpdateDelete()
        {
            //Add-Get-Тест
            DateTime  date = DateTime.Now;
            BasicReis expectedBasicReis = new BasicReis();

            expectedBasicReis.Date = date;

            DataAccessBasicReis basicReis = new DataAccessBasicReis();

            basicReis.AddElement(expectedBasicReis);
            var actualBasicReis = basicReis.GetAll().Last();

            Assert.AreEqual(expectedBasicReis, actualBasicReis);

            //Update - Тест
            expectedBasicReis      = actualBasicReis;
            expectedBasicReis.Date = date.AddDays(2);
            basicReis.UpdateElement(expectedBasicReis);
            actualBasicReis = basicReis.GetElement(expectedBasicReis.CodeBasicReis);
            Assert.AreEqual(expectedBasicReis, actualBasicReis);

            //Delete-Тест
            int expectedCount = basicReis.GetAll().Count() - 1;

            basicReis.DeleteElement(actualBasicReis);
            int actualCount = basicReis.GetAll().Count();

            Assert.AreEqual(expectedCount, actualCount);
        }
        public void TestBasicReisAddGetUpdateDelete()
        {
            //Add-Get-Тест
            DateTime date = DateTime.Now;
            BasicReis expectedBasicReis = new BasicReis();
            expectedBasicReis.Date = date;

            DataAccessBasicReis basicReis = new DataAccessBasicReis();
            basicReis.AddElement(expectedBasicReis);
            var actualBasicReis = basicReis.GetAll().Last();
            Assert.AreEqual(expectedBasicReis, actualBasicReis);

            //Update - Тест
            expectedBasicReis = actualBasicReis;
            expectedBasicReis.Date = date.AddDays(2);
            basicReis.UpdateElement(expectedBasicReis);
            actualBasicReis = basicReis.GetElement(expectedBasicReis.CodeBasicReis);
            Assert.AreEqual(expectedBasicReis, actualBasicReis);

            //Delete-Тест
            int expectedCount = basicReis.GetAll().Count() - 1;
            basicReis.DeleteElement(actualBasicReis);
            int actualCount = basicReis.GetAll().Count();
            Assert.AreEqual(expectedCount, actualCount);
        }
示例#3
0
        //Бронирование
        public string Reserve(string destination, DateTime nowTime)
        {
            //Выбираем все рейсы в искомую точку и сортируем по времени
            var basicReises = BasicReisEntitie.GetAll().Where(x => x.To.Trim() == destination.Trim()).Select(x => x.CodeBasicReis);
            var reises      = ReisEntitie.GetAll().Where(x => basicReises.Contains((int)x.CodeBasicReis)).OrderBy(x => x.Date);
            //Выбираем из подходящих рейсов, рейсы на которые есть места
            var freeReises = reises.Where(x => PlainsEntitie.GetAll().Single(plain => plain.CodePlane == x.BasicReis.CodePlain).NumberOfSeats - ClientsEntitie.GetAll().Where(client => client.CodeReis == x.CodeReis).Count() > 0);
            //Выбираем первый, по времени, рейс на который есть места
            var total = freeReises.SkipWhile(x => x.Date < nowTime).DefaultIfEmpty(null).First();

            if (total != null)
            {
                Clients temp = new Clients();
                temp.BookOrBuy = false;
                temp.CodeReis  = total.CodeReis;
                ClientsEntitie.AddElement(temp);
                return(String.Format("Забронирован билет на рейс {0} в {1} на {2}", total.CodeReis, total.BasicReis.To.Trim(), total.Date));
            }
            else
            {
                return(String.Format("Билетов в {0} нет на допустимый период", destination));
            }
        }