Exemple #1
0
        static void Main(string[] args)
        {
            DateTime entryDate   = new DateTime(2020, 4, 5),
                     releaseDate = new DateTime(2020, 5, 12);

            BE.Host host = new BE.Host()
            {
                HostKey             = ++BE.Configuration.HostKey,
                Balance             = 105,
                PrivateName         = "no",
                FamilyName          = "money",
                PhoneNumber         = "05050505",
                Email               = "*****@*****.**",
                CollectionClearance = true,
                BankBranchDetails   = new BE.BankBranch()
                {
                    BankNumber    = ++BE.Configuration.BankNumber,
                    BankName      = "take your money",
                    BranchAddress = "take your money city",
                    BranchCity    = "no money city",
                    BranchNumber  = 15
                },
                BankAccountNumber = 130559,
            };
            BE.GuestRequest guestRequest = new BE.GuestRequest
            {
                GuestRequestKey     = ++BE.Configuration.GuestRequestKey,
                PrivateName         = "shachar",
                FamilyName          = "markovich",
                Email               = "*****@*****.**",
                Stat                = BE.Enums.Status.NotYetApproved,
                RegistrationDate    = DateTime.Now,
                EntryDate           = new DateTime(2020, 8, 9),
                ReleaseDate         = new DateTime(2020, 8, 12),
                Area                = BE.Enums.Area.Center,
                type                = BE.Enums.UnitType.Hotel,
                Adults              = 2,
                Children            = 3,
                Pool                = true,
                Jecuzzi             = true,
                Garden              = true,
                ChildrenAttractions = true
            };
            BE.HostingUnit hostingUnit = new BE.HostingUnit()
            {
                HostingUnitKey  = ++BE.Configuration.HostingUnitKey,
                HostingUnitName = "hotel california",
                Owner           = host,
                type            = BE.Enums.UnitType.Hotel,
                Area            = BE.Enums.Area.Center,
                Diary           = new bool[BE.Configuration._month, BE.Configuration._days],
            };
            BE.Order order = new BE.Order()
            {
                OrderKey        = ++BE.Configuration.OrderKey,
                HostingUnitKey  = hostingUnit.HostingUnitKey,
                GuestRequestKey = guestRequest.GuestRequestKey,
                Status          = guestRequest.Stat,
                CreateDate      = DateTime.Now,
                OrderDate       = new DateTime(2020, 3, 3)
            };


            _bl.AddGuestRequest(guestRequest);
            _bl.AddHostingUnit(hostingUnit);
            _bl.AddOrder(order);

            Console.WriteLine("adding the next instance Successfully:\n");
            Console.WriteLine(host);
            Console.WriteLine();
            Console.WriteLine(guestRequest);
            Console.WriteLine();
            Console.WriteLine(order);
            Clear();


            if (_bl.IsDateArmor(hostingUnit, entryDate, releaseDate))
            {
                Console.WriteLine("the following hostingUnit has free rooms between " + entryDate.toString() + " to " + releaseDate.toString());
                Console.WriteLine(hostingUnit);
                Clear();
            }

            Console.WriteLine($"host.Balance before taking fee: {host.Balance}");
            _bl.TakeFee(order);
            List <BE.HostingUnit> unit2 = _bl.AccordingTo(unit => hostingUnit.Owner.HostKey == unit.Owner.HostKey);

            Console.WriteLine($"host.Balance after taking fee: {unit2.Single().Owner.Balance}");
            Clear();

            Console.WriteLine($"hostingUnit.diary before update:\n{hostingUnit.Diary.toString()}");
            _bl.UpdateCalendar(hostingUnit, entryDate, releaseDate);
            unit2 = _bl.AccordingTo(unit => hostingUnit.HostingUnitKey == unit.HostingUnitKey);
            Console.WriteLine($"hostingUnit.diary after update:\n{unit2.Single().Diary.toString()}");
            Clear();


            _bl.SendEmail(host /*FROM*/, "*****@*****.**" /*TO*/);
            int daysNumber = _bl.OrderCount(guestRequest);

            Console.WriteLine($"number of orders sent to {guestRequest.GuestRequestKey} is: {daysNumber}");
            daysNumber = _bl.ApprovedCount(hostingUnit);
            Console.WriteLine($"number of all order that have been closed for the hosting unit {hostingUnit.HostingUnitKey} is: {daysNumber}");
            Clear();

            List <BE.HostingUnit> c = _bl.ListOptionsFree(entryDate, daysNumber);

            foreach (var item in c)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("\n");
            List <BE.Order> d = _bl.AtLeastnDays(daysNumber);

            foreach (var item in c)
            {
                Console.WriteLine(item);
            }

            Clear();

            List <IGrouping <BE.Enums.Area, BE.GuestRequest> > f = _bl.GroupGuestRequestByArea();
            List <IGrouping <int, BE.GuestRequest> >           g = _bl.GroupGuestRequestByPeopleCount();
            List <IGrouping <int, BE.Host> > h = _bl.GroupHostByfHostingUnitCount();
            List <IGrouping <BE.Enums.Area, BE.HostingUnit> > i = _bl.GroupHostingUnitByArea();
        }