private void Button_Click(object sender, RoutedEventArgs e)
        {
            try {
                DataContext    = hosting;
                hosting.adults = Int32.Parse(adults.Text.ToString());
                hosting.kids   = Int32.Parse(kids.Text.ToString());
                hosting.stars  = Int32.Parse(stars.Text.ToString());
                do
                {
                    hosting.HostingUnitKey = GetA8digitNumber();
                } while (bl.GetHostingUnit(hosting.HostingUnitKey) != null);

                if (jacuzziOption1.IsChecked == false)
                {
                    hosting.jaccuzi = false;
                }
                else
                {
                    hosting.jaccuzi = true;
                }

                hosting.garden = (gardenOption1.IsChecked == false);
                hosting.pool   = (poolOption1.IsChecked == false);
                hosting.childrenAttractions = (attractionOption1.IsChecked == false);


                hosting.HostingUnitName = HostingUnitName.Text;
                //hosting.Owner.FamilyName = Owner.Text;
                hosting.subArea = subArea.Text;


                bl.AddHostingUnit(hosting);

                MessageBoxResult result = MessageBox.Show("Thank You, your unit has been added. Would you like to add another hosting unit?", "Status", MessageBoxButton.YesNo, MessageBoxImage.Question);
                switch (result)
                {
                case MessageBoxResult.Yes:
                    this.Close();
                    Window addHostingUnitWindow = new addHostingUnitWindow();
                    addHostingUnitWindow.Show();
                    break;

                case MessageBoxResult.No:
                    this.Close();
                    break;
                }
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 2
0
        private void ButtonADD_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                bl.AddHostingUnit(unit);
                MessageBox.Show(unit.MsgBoxHU, "INFORMATION");
                //unit = new BE.HostingUnit();
                this.AddHUGrid.DataContext = unit;
            }
            catch (FormatException)
            {
                MessageBox.Show("check your input and try again");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            //if (int.Parse(tbAdults.Text) < 0 || int.Parse(tbChildren.Text) < 0)
            //    MessageBox.Show("Number of adults can't be negative", "ERROR", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            this.Close();
        }
Esempio n. 3
0
        private void addButton_Click(object sender, RoutedEventArgs e) //when we click on the button ADD to add hosting unit
        {
            try
            {
                if (hostU.Owner.BankBranchH.BankNumber == 0 || hostU.HostingUnitName == null || hostU.Owner.HostKey == null || hostU.Owner.PrivateName == null || hostU.Owner.FamilyName == null || hostU.Owner.MailAddress == null || hostU.Owner.PhoneNumber == null || hostU.Owner.BankAccountNumber == 0)
                {
                    throw new ArgumentException("Please fill out all required fields");
                }


                MessageBox.Show(bl.AddHostingUnit(hostU), "Hosting Unit", MessageBoxButton.OK, MessageBoxImage.Information);
                HostingUkey.Password = hostU.HostingUnitKey.ToString();
                hostU                   = null;
                hostU                   = new BE.HostingUnit();
                hostU.Owner             = new BE.Host();
                hostU.Owner.BankBranchH = new BE.BankBranch();
                this.DataContext        = hostU;
                BEnter_Click(null, null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Hosting Unit", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Esempio n. 4
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();
        }
        private void addhostingunitbutton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (poolComboBox.SelectedItem == null || typeComboBox.SelectedItem == null || publicTransportationComboBox.SelectedItem == null || jacuzziComboBox.SelectedItem == null || viewComboBox.SelectedItem == null || smokingComboBox.SelectedItem == null ||
                    roomServiceComboBox.SelectedItem == null || areaComboBox.SelectedItem == null || gardenComboBox.SelectedItem == null || childrensAttractionsComboBox.SelectedItem == null || wifiComboBox.SelectedItem == null ||
                    tvComboBox.SelectedItem == null || snackBarComboBox.SelectedItem == null || familyNameTextBox.Text == "" || privateNameTextBox.Text == "" || mailAddressTextBox.Text == "" || sizeTextBox.Text == "" ||
                    floorsTextBox.Text == "" || ageTextBox.Text == "" || bankAccountNumberTextBox.Text == "" || phoneNumberTextBox.Text == "" || hostKeyTextBox.Text == "" || hostingUnitNameTextBox.Text == "" || collectionClearanceComboBox.SelectedItem == null || banknameComboBox.SelectedItem == null || branchnumberComboBox.SelectedItem == null)
                {
                    throw new NullReferenceException("please fill out all of the fields");
                }
                if (!Regex.IsMatch(this.sizeTextBox.Text.ToString(), @"^\d+$"))
                {
                    throw new InvalidOperationException("invaild size");
                }
                if (!Regex.IsMatch(this.floorsTextBox.Text.ToString(), @"^\d+$"))
                {
                    throw new InvalidOperationException("invaild number of floors");
                }
                if (!Regex.IsMatch(this.bankAccountNumberTextBox.Text.ToString(), @"^\d+$"))
                {
                    throw new InvalidOperationException("invaild bank account number");
                }
                if (!Regex.IsMatch(this.hostKeyTextBox.Text.ToString(), @"^\d+$"))
                {
                    throw new InvalidOperationException("invaild host key");
                }
                if (!Regex.IsMatch(this.ageTextBox.Text.ToString(), @"^\d+$"))
                {
                    throw new InvalidOperationException("invaild age");
                }

                if (!Regex.IsMatch(phoneNumberTextBox.Text, @"^(\d{10})$"))
                {
                    throw new InvalidOperationException("invaild phone number");
                }
                unit.garden = (BE.Garden)gardenComboBox.SelectedItem;
                unit.area   = (BE.Area)areaComboBox.SelectedItem;
                unit.publicTransportation = (BE.PublicTransportation)publicTransportationComboBox.SelectedItem;
                unit.pool                = (BE.Pool)poolComboBox.SelectedItem;
                unit.wifi                = (BE.Wifi)wifiComboBox.SelectedItem;
                unit.roomService         = (BE.RoomService)roomServiceComboBox.SelectedItem;
                unit.smoking             = (BE.Smoking)smokingComboBox.SelectedItem;
                unit.snackBar            = (BE.SnackBar)snackBarComboBox.SelectedItem;
                unit.tv                  = (BE.Television)tvComboBox.SelectedItem;
                unit.type                = (BE.Type)typeComboBox.SelectedItem;
                unit.view                = (BE.View)viewComboBox.SelectedItem;
                unit.jacuzzi             = (BE.Jacuzzi)jacuzziComboBox.SelectedItem;
                host.CollectionClearance = (BE.PaymentClearance)collectionClearanceComboBox.SelectedItem;

                unit.Size              = int.Parse(this.sizeTextBox.Text);
                unit.Floors            = int.Parse(this.floorsTextBox.Text);
                unit.HostingUnitName   = (this.hostingUnitNameTextBox.Text);
                host.PrivateName       = (this.privateNameTextBox.Text);
                host.PhoneNumber       = (this.phoneNumberTextBox.Text);
                host.FamilyName        = (this.familyNameTextBox.Text);
                host.BankAccountNumber = int.Parse(this.bankAccountNumberTextBox.Text);
                host.Age               = int.Parse(this.ageTextBox.Text);
                host.MailAddress       = (this.mailAddressTextBox.Text);
                host.HostKey           = int.Parse(this.hostKeyTextBox.Text);
                host.BankBranchDetails = bl.GetBranchByNumberAndName(int.Parse(branchnumberComboBox.Text), banknameComboBox.Text);
                unit.Owner             = host;
                this.DataContext       = unit;
                bl.AddHostingUnit(unit);
                unit = new BE.HostingUnit();

                MessageBoxResult result = MessageBox.Show("Thank You, your unit has been added. Would you like to add another hosting unit?", "Status", MessageBoxButton.YesNo, MessageBoxImage.Question);
                switch (result)
                {
                case MessageBoxResult.Yes:
                    this.Close();
                    Window AddHostingUnitWindow = new AddHostingUnitWindow();
                    AddHostingUnitWindow.Show();
                    break;

                case MessageBoxResult.No:
                    this.Close();
                    break;
                }
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            firstNameEmpty.Visibility = firstName.Text == "" ? Visibility.Visible : Visibility.Hidden;
            lastNameEmpty.Visibility  = lastName.Text == "" ? Visibility.Visible : Visibility.Hidden;
            if (phoneNumber.Text == "")
            {
                phoneNumberEmpty.Visibility = Visibility.Visible;
            }
            else
            {
                phoneNumberEmpty.Visibility = Visibility.Hidden;
                phoneNumberError.Visibility = (phoneNumber.Text.Length < 9 || phoneNumber.Text.Length > 10) ? Visibility.Visible : Visibility.Hidden;
            }
            if (emailAddress.Text == "")
            {
                emailAddressEmpty.Visibility = Visibility.Visible;
            }
            else
            {
                emailAddressEmpty.Visibility = Visibility.Hidden;
                emailAddressEmpty.Visibility = (!bl.IsValidMail(emailAddress.Text)) ? Visibility.Visible : Visibility.Hidden;
            }
            bankNameCMBEmpty.Visibility       = bankNameCMB.SelectedValue == null ? Visibility.Visible : Visibility.Hidden;
            branchNumberCMBEmpty.Visibility   = branchNumberCMB.SelectedValue == null ? Visibility.Visible : Visibility.Hidden;
            bankAccountNumberEmpty.Visibility = bankAccountNumber.Text == "" ? Visibility.Visible : Visibility.Hidden;
            hostingUnitNameEmpty.Visibility   = hostingUnitName.Text == "" ? Visibility.Visible : Visibility.Hidden;
            unitAreasCMBEmpty.Visibility      = unitAreasCMB.SelectedValue == null ? Visibility.Visible : Visibility.Hidden;
            unitSubAreasCMBEmpty.Visibility   = unitSubAreasCMB.SelectedValue == null ? Visibility.Visible : Visibility.Hidden;
            unitTypesCMBEmpty.Visibility      = unitTypesCMB.SelectedValue == null ? Visibility.Visible : Visibility.Hidden;
            pricePerNightEmpty.Visibility     = pricePerNight.Text == "" ? Visibility.Visible : Visibility.Hidden;
            unitAddressEmpty.Visibility       = unitAddress.Text == "" ? Visibility.Visible : Visibility.Hidden;
            if (firstNameEmpty.Visibility == Visibility.Visible || lastNameEmpty.Visibility == Visibility.Visible ||
                phoneNumberEmpty.Visibility == Visibility.Visible || phoneNumberError.Visibility == Visibility.Visible ||
                emailAddressEmpty.Visibility == Visibility.Visible || emailAddressError.Visibility == Visibility.Visible ||
                bankNameCMBEmpty.Visibility == Visibility.Visible || branchNumberCMBEmpty.Visibility == Visibility.Visible ||
                bankAccountNumberEmpty.Visibility == Visibility.Visible || hostingUnitNameEmpty.Visibility == Visibility.Visible ||
                unitAreasCMBEmpty.Visibility == Visibility.Visible || unitSubAreasCMBEmpty.Visibility == Visibility.Visible ||
                unitTypesCMBEmpty.Visibility == Visibility.Visible || pricePerNightEmpty.Visibility == Visibility.Visible ||
                unitAddressEmpty.Visibility == Visibility.Visible)
            {
                return;
            }

            myHostingUnit       = new HostingUnit();
            myHostingUnit.Owner = new Host();
            myHostingUnit.Owner.BankBranchDetails = new BankBranch();
            myHostingUnit.Diary                   = new bool[12, 31];
            myHostingUnit.Owner.FirstName         = firstName.Text;
            myHostingUnit.Owner.LastName          = lastName.Text;
            myHostingUnit.Owner.PhoneNumber       = phoneNumber.Text;
            myHostingUnit.Owner.MailAddress       = emailAddress.Text;
            myHostingUnit.Owner.BankBranchDetails = bl.ReceiveBankBranchesList().Find(x => x.BranchNumber == int.Parse((((string)branchNumberCMB.SelectedValue).Split(' ')[0])));
            myHostingUnit.Owner.BankAccountNumber = bankAccountNumber.Text;
            if (CheckCollectionClearance.IsChecked == true)
            {
                myHostingUnit.Owner.CollectionClearance = true;
            }
            else if (CheckCollectionClearance.IsChecked == false)
            {
                myHostingUnit.Owner.CollectionClearance = false;
            }
            myHostingUnit.Area                = (BE.Enum_s.Areas)unitAreasCMB.SelectedValue;
            myHostingUnit.SubArea             = (BE.Enum_s.SubArea)unitSubAreasCMB.SelectedValue;
            myHostingUnit.Type                = (BE.Enum_s.HostingUnitTypes)unitTypesCMB.SelectedValue;
            myHostingUnit.Adults              = int.Parse(adults.Text);
            myHostingUnit.Children            = int.Parse(children.Text);
            myHostingUnit.Price               = float.Parse(pricePerNight.Text);
            myHostingUnit.Address             = unitAddress.Text;
            myHostingUnit.Pool                = (bool)CheckPool.IsChecked;
            myHostingUnit.Jacuzzi             = (bool)CheckJacuzzi.IsChecked;
            myHostingUnit.Garden              = (bool)CheckGarden.IsChecked;
            myHostingUnit.ChildrenAttractions = (bool)CheckChildrenAttractions.IsChecked;
            myHostingUnit.Wifi                = (bool)CheckWifi.IsChecked;
            myHostingUnit.HostingUnitName     = hostingUnitName.Text;
            myHostingUnit.Address             = unitAddress.Text;

            try
            {
                bl.AddHostingUnit(myHostingUnit);
                if (CheckCollectionClearance.IsChecked == true)
                {
                    MessageBox.Show("שלום " + myHostingUnit.Owner.FirstName + "!\n" + "היחידה הצטרפה למאגר בהצלחה" + "\n"
                                    + myHostingUnit.HostingUnitKey + " :מספר היחידה הוא" + "\n" + "מקווים שתהנה משירותינו");
                }
                else
                {
                    MessageBox.Show("שלום " + myHostingUnit.Owner.FirstName + "!\n" + "היחידה הצטרפה למאגר בהצלחה" + "\n"
                                    + myHostingUnit.HostingUnitKey + " :מספר היחידה הוא" + "\n" + "שים לב כי לא תוכל לבצע עסקאות מכיוון שחסרה הרשאת חיוב חשבון " +
                                    "\n" + "מקווים שתהנה משירותינו");
                }
                myHostingUnit.Diary = new bool[12, 31];
                myHostingUnit.Owner.BankBranchDetails = new BankBranch();
                myHostingUnit.Owner            = new Host();
                myHostingUnit                  = null;
                myHostingUnit                  = new HostingUnit();
                this.NavigationService.Content = new AddHostingUnitPage();
            }
            catch (Exception ex)
            {
                MessageBox.Show("שלום " + myHostingUnit.Owner.FirstName + "!\n" + ex.Message, "", MessageBoxButton.OK, MessageBoxImage.Exclamation, MessageBoxResult.OK, MessageBoxOptions.RightAlign);
                myHostingUnit       = null;
                myHostingUnit       = new HostingUnit();
                myHostingUnit.Owner = new Host();
                myHostingUnit.Owner.BankBranchDetails = new BankBranch();
                myHostingUnit.Diary = new bool[12, 31];
            }
        }
Esempio n. 7
0
        private void initHostingUnit()
        {
            List <HostingUnit> HostingUnitList = new List <HostingUnit>()
            {
                new HostingUnit()
                {
                    Owner = new Host()
                    {
                        FirstName         = "Efraim",
                        LastName          = "Miller",
                        PhoneNumber       = "0545851233",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 11,
                            BankName      = "Discount",
                            BranchNumber  = 34,
                            BranchAddress = "Kaplan 2",
                            BranchCity    = "Tel Aviv"
                        },
                        BankAccountNumber   = "1601245551",
                        CollectionClearance = true,
                        Commission          = 0
                    },
                    HostingUnitName     = "Kalanit",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.צפון,
                    SubArea             = Enum_s.SubArea.גליל,
                    Type                = Enum_s.HostingUnitTypes.קמפינג,
                    Adults              = 2,
                    Children            = 4,
                    Pool                = true,
                    Jacuzzi             = false,
                    Garden              = true,
                    ChildrenAttractions = true,
                    Wifi                = true,
                    Address             = "האורנים 15",
                    Price               = 250
                },
                new HostingUnit()
                {
                    Owner = new Host()
                    {
                        FirstName         = "Israel",
                        LastName          = "Avramov",
                        PhoneNumber       = "0527188451",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 12,
                            BankName      = "Hapoalim",
                            BranchNumber  = 520,
                            BranchAddress = "Kanfe Nesharim 22",
                            BranchCity    = "Jerusalem"
                        },
                        BankAccountNumber   = "1612348133",
                        CollectionClearance = false,
                        Commission          = 0
                    },
                    HostingUnitName     = "Antiques",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.ירושלים,
                    SubArea             = Enum_s.SubArea.ירושלים,
                    Type                = Enum_s.HostingUnitTypes.דירה,
                    Adults              = 4,
                    Children            = 2,
                    Pool                = false,
                    Jacuzzi             = false,
                    Garden              = false,
                    ChildrenAttractions = false,
                    Wifi                = true,
                    Address             = "גאולה 145",
                    Price               = 300
                },
                new HostingUnit()
                {
                    Owner = new Host()
                    {
                        FirstName         = "Yafit",
                        LastName          = "Halevi",
                        PhoneNumber       = "0587760213",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 20,
                            BankName      = "Mizrahi Tefahot",
                            BranchNumber  = 464,
                            BranchAddress = "Kakal 130",
                            BranchCity    = "Beer Sheba"
                        },
                        BankAccountNumber   = "1616342139",
                        CollectionClearance = true,
                        Commission          = 0
                    },
                    HostingUnitName     = "Flower",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.דרום,
                    SubArea             = Enum_s.SubArea.באר_שבע,
                    Type                = Enum_s.HostingUnitTypes.בקתה,
                    Adults              = 2,
                    Children            = 0,
                    Pool                = true,
                    Jacuzzi             = true,
                    Garden              = false,
                    ChildrenAttractions = false,
                    Wifi                = true,
                    Address             = "האחדות 78",
                    Price               = 500
                },
                new HostingUnit()
                {
                    Owner = new Host()
                    {
                        FirstName         = "Yizhak",
                        LastName          = "Shamir",
                        PhoneNumber       = "0512054332",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 11,
                            BankName      = "Discount",
                            BranchNumber  = 3,
                            BranchAddress = "Shderot Hatmarim, Shalom Center",
                            BranchCity    = "Eilat"
                        },
                        BankAccountNumber   = "1694527361",
                        CollectionClearance = false,
                        Commission          = 0
                    },
                    HostingUnitName     = "BlueSea",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.דרום,
                    SubArea             = Enum_s.SubArea.אילת,
                    Type                = Enum_s.HostingUnitTypes.מלון,
                    Adults              = 2,
                    Children            = 2,
                    Pool                = true,
                    Jacuzzi             = false,
                    Garden              = true,
                    ChildrenAttractions = true,
                    Wifi                = true,
                    Address             = "דקל 22",
                    Price               = 289
                },
                new HostingUnit()
                {
                    Owner = new Host()
                    {
                        FirstName         = "Ruth",
                        LastName          = "Miller",
                        PhoneNumber       = "0587760213",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 11,
                            BankName      = "Discount",
                            BranchNumber  = 331,
                            BranchAddress = "Beit Hateomim 15",
                            BranchCity    = "Jerusalem"
                        },
                        BankAccountNumber   = "1615978523",
                        CollectionClearance = false,
                        Commission          = 0
                    },
                    HostingUnitName     = "Hordus",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.ירושלים,
                    SubArea             = Enum_s.SubArea.ירושלים,
                    Type                = Enum_s.HostingUnitTypes.בקתה,
                    Adults              = 4,
                    Children            = 4,
                    Pool                = false,
                    Jacuzzi             = true,
                    Garden              = true,
                    ChildrenAttractions = true,
                    Wifi                = true,
                    Address             = "ממילא 45",
                    Price               = 299
                }
            };

            foreach (var item in HostingUnitList)
            {
                try
                {
                    bl.AddHostingUnit(item);
                }
                catch (Exception) { }
            }
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            BL.IBL bl = BL.BlFactory.GetBL();
            #region hosting units initializing
            List <HostingUnit> HostingUnitList = new List <HostingUnit>()
            {
                new HostingUnit()
                {
                    HostingUnitKey = 1,
                    Owner          = new Host()
                    {
                        HostKey           = 1,
                        FirstName         = "Efraim",
                        LastName          = "Miller",
                        PhoneNumber       = "0545851233",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 11,
                            BankName      = "Discount",
                            BranchNumber  = 34,
                            BranchAddress = "Kaplan 2",
                            BranchCity    = "Tel Aviv"
                        },
                        BankAccountNumber   = "1601245551",
                        CollectionClearance = true,
                        Commission          = 0
                    },
                    HostingUnitName     = "Kalanit",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.צפון,
                    SubArea             = Enum_s.SubArea.גליל,
                    Type                = Enum_s.HostingUnitTypes.קמפינג,
                    Adults              = 2,
                    Children            = 4,
                    Pool                = true,
                    Jacuzzi             = false,
                    Garden              = true,
                    ChildrenAttractions = true
                },
                new HostingUnit()
                {
                    HostingUnitKey = 2,
                    Owner          = new Host()
                    {
                        HostKey           = 2,
                        FirstName         = "Israel",
                        LastName          = "Avramov",
                        PhoneNumber       = "0527188451",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 12,
                            BankName      = "Hapoalim",
                            BranchNumber  = 520,
                            BranchAddress = "Kanfe Nesharim 22",
                            BranchCity    = "Jerusalem"
                        },
                        BankAccountNumber   = "1612348133",
                        CollectionClearance = false,
                        Commission          = 0
                    },
                    HostingUnitName     = "Antiques",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.ירושלים,
                    SubArea             = Enum_s.SubArea.ירושלים,
                    Type                = Enum_s.HostingUnitTypes.דירה,
                    Adults              = 4,
                    Children            = 2,
                    Pool                = false,
                    Jacuzzi             = false,
                    Garden              = false,
                    ChildrenAttractions = false
                },
                new HostingUnit()
                {
                    HostingUnitKey = 3,
                    Owner          = new Host()
                    {
                        HostKey           = 3,
                        FirstName         = "Yafit",
                        LastName          = "Halevi",
                        PhoneNumber       = "0587760213",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 20,
                            BankName      = "Mizrahi Tefahot",
                            BranchNumber  = 464,
                            BranchAddress = "Kakal 130",
                            BranchCity    = "Beer Sheba"
                        },
                        BankAccountNumber   = "1616342139",
                        CollectionClearance = true,
                        Commission          = 0
                    },
                    HostingUnitName     = "Flower",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.דרום,
                    SubArea             = Enum_s.SubArea.באר_שבע,
                    Type                = Enum_s.HostingUnitTypes.בקתה,
                    Adults              = 2,
                    Children            = 0,
                    Pool                = true,
                    Jacuzzi             = true,
                    Garden              = false,
                    ChildrenAttractions = false
                },
                new HostingUnit()
                {
                    HostingUnitKey = 4,
                    Owner          = new Host()
                    {
                        HostKey           = 4,
                        FirstName         = "Yizhak",
                        LastName          = "Shamir",
                        PhoneNumber       = "0512054332",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 11,
                            BankName      = "Discount",
                            BranchNumber  = 3,
                            BranchAddress = "Shderot Hatmarim, Shalom Center",
                            BranchCity    = "Eilat"
                        },
                        BankAccountNumber   = "1694527361",
                        CollectionClearance = false,
                        Commission          = 0
                    },
                    HostingUnitName     = "BlueSea",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.דרום,
                    SubArea             = Enum_s.SubArea.אילת,
                    Type                = Enum_s.HostingUnitTypes.מלון,
                    Adults              = 2,
                    Children            = 2,
                    Pool                = true,
                    Jacuzzi             = false,
                    Garden              = true,
                    ChildrenAttractions = true
                },
                new HostingUnit()
                {
                    HostingUnitKey = 5,
                    Owner          = new Host()
                    {
                        HostKey           = 5,
                        FirstName         = "Ruth",
                        LastName          = "Miller",
                        PhoneNumber       = "0587760213",
                        MailAddress       = "*****@*****.**",
                        BankBranchDetails = new BankBranch()
                        {
                            BankNumber    = 11,
                            BankName      = "Discount",
                            BranchNumber  = 331,
                            BranchAddress = "Beit Hateomim 15",
                            BranchCity    = "Jerusalem"
                        },
                        BankAccountNumber   = "1615978523",
                        CollectionClearance = false,
                        Commission          = 0
                    },
                    HostingUnitName     = "Hordus",
                    Diary               = new bool[12, 31],
                    Area                = Enum_s.Areas.ירושלים,
                    SubArea             = Enum_s.SubArea.ירושלים,
                    Type                = Enum_s.HostingUnitTypes.בקתה,
                    Adults              = 4,
                    Children            = 4,
                    Pool                = false,
                    Jacuzzi             = true,
                    Garden              = true,
                    ChildrenAttractions = true
                }
            };
            foreach (var item in HostingUnitList)
            {
                try
                {
                    bl.AddHostingUnit(item);
                }
                catch (Exception) { }
            }
            #endregion
            #region guest requests initializing
            List <GuestRequest> guestRequestList = new List <GuestRequest>()
            {
                new GuestRequest()
                {
                    GuestRequestKey     = 1,
                    FirstName           = "Ron",
                    LastName            = "Cohen",
                    MailAddress         = "*****@*****.**",
                    Status              = Enum_s.GuestRequestStatus.Open,
                    RegistrationDate    = DateTime.Now,
                    EntryDate           = DateTime.Now.AddDays(1),
                    ReleaseDate         = DateTime.Now.AddDays(5),
                    Area                = Enum_s.Areas.צפון,
                    SubArea             = Enum_s.SubArea.חיפה,
                    Type                = Enum_s.HostingUnitTypes.מלון,
                    Adults              = 2,
                    Children            = 3,
                    Pool                = Enum_s.RequestOption.כן,
                    Jacuzzi             = Enum_s.RequestOption.כן,
                    Garden              = Enum_s.RequestOption.לא,
                    ChildrenAttractions = Enum_s.RequestOption.כן
                },
                new GuestRequest()
                {
                    GuestRequestKey     = 2,
                    FirstName           = "Dar",
                    LastName            = "Levi",
                    MailAddress         = "*****@*****.**",
                    Status              = Enum_s.GuestRequestStatus.Open,
                    RegistrationDate    = DateTime.Now,
                    EntryDate           = DateTime.Now.AddDays(8),
                    ReleaseDate         = DateTime.Now.AddDays(15),
                    Area                = Enum_s.Areas.מרכז,
                    SubArea             = Enum_s.SubArea.תל_אביב,
                    Type                = Enum_s.HostingUnitTypes.דירה,
                    Adults              = 3,
                    Children            = 0,
                    Pool                = Enum_s.RequestOption.אפשרי,
                    Jacuzzi             = Enum_s.RequestOption.אפשרי,
                    Garden              = Enum_s.RequestOption.כן,
                    ChildrenAttractions = Enum_s.RequestOption.לא
                },
                new GuestRequest()
                {
                    GuestRequestKey     = 3,
                    FirstName           = "Eyal",
                    LastName            = "Rot",
                    MailAddress         = "*****@*****.**",
                    Status              = Enum_s.GuestRequestStatus.Open,
                    RegistrationDate    = DateTime.Now,
                    EntryDate           = DateTime.Now.AddDays(50),
                    ReleaseDate         = DateTime.Now.AddDays(60),
                    Area                = Enum_s.Areas.דרום,
                    SubArea             = Enum_s.SubArea.אילת,
                    Type                = Enum_s.HostingUnitTypes.מלון,
                    Adults              = 4,
                    Children            = 4,
                    Pool                = Enum_s.RequestOption.כן,
                    Jacuzzi             = Enum_s.RequestOption.כן,
                    Garden              = Enum_s.RequestOption.אפשרי,
                    ChildrenAttractions = Enum_s.RequestOption.כן
                },
                new GuestRequest()
                {
                    GuestRequestKey     = 4,
                    FirstName           = "Itay",
                    LastName            = "Mark",
                    MailAddress         = "*****@*****.**",
                    Status              = Enum_s.GuestRequestStatus.Open,
                    RegistrationDate    = DateTime.Now,
                    EntryDate           = DateTime.Now.AddDays(12),
                    ReleaseDate         = DateTime.Now.AddDays(19),
                    Area                = Enum_s.Areas.צפון,
                    SubArea             = Enum_s.SubArea.גליל,
                    Type                = Enum_s.HostingUnitTypes.בקתה,
                    Adults              = 2,
                    Children            = 0,
                    Pool                = Enum_s.RequestOption.לא,
                    Jacuzzi             = Enum_s.RequestOption.כן,
                    Garden              = Enum_s.RequestOption.לא,
                    ChildrenAttractions = Enum_s.RequestOption.לא
                },
                new GuestRequest()
                {
                    GuestRequestKey     = 5,
                    FirstName           = "Tomer",
                    LastName            = "Halpern",
                    MailAddress         = "*****@*****.**",
                    Status              = Enum_s.GuestRequestStatus.Open,
                    RegistrationDate    = DateTime.Now,
                    EntryDate           = DateTime.Now.AddDays(2),
                    ReleaseDate         = DateTime.Now.AddDays(7),
                    Area                = Enum_s.Areas.ירושלים,
                    SubArea             = Enum_s.SubArea.ירושלים,
                    Type                = Enum_s.HostingUnitTypes.מלון,
                    Adults              = 3,
                    Children            = 2,
                    Pool                = Enum_s.RequestOption.כן,
                    Jacuzzi             = Enum_s.RequestOption.כן,
                    Garden              = Enum_s.RequestOption.כן,
                    ChildrenAttractions = Enum_s.RequestOption.כן
                }
            };
            foreach (var item in guestRequestList)
            {
                try
                {
                    bl.AddGuestRequest(item);
                }
                catch (Exception) { }
            }
            #endregion
            Console.WriteLine("All The Hosting Units:\n");
            foreach (var item in HostingUnitList)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("All The Guest Request:\n");
            foreach (var item in guestRequestList)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("All The Orders:\n");
            Console.WriteLine("Hello User\nThis is Searching And Maching Vacation System.\n" +
                              "Menu:\nA: Add Guest Request\nB: Add Hosting Unit\nC: Update Hosting Unit\n" +
                              "D: Delete Hosting Unit\nE: Update Order Status\nF: Delete Order\nG: Show Hosting Units inventory" +
                              "\nH: Show Guest Requests inventory\nI: Show Orders inventory\nJ: Show specific Order\nK: Show " +
                              "specific hosting unit\nL: Show Expired Orders\nM: Show sum of orders for specific guest\nN: Sum" +
                              "orders which sended or responded\nO: Show guest requests by areas\nP: Show guest requests by number" +
                              "of adults\nQ: Show guest requests by number of children\nR: Show hosts by number og their hosting units" +
                              "\nS: Show hosting units by areas\nX: Exit");
            string choice, tmp;
            do
            {
                Console.Write("Please enter youe choice: ");
                choice = Console.ReadLine();
                switch (choice)
                {
                case "A":
                    GuestRequest newGuestRequest = addRequest();
                    try
                    {
                        bl.AddGuestRequest(newGuestRequest);
                        Console.WriteLine("Your request received successfully! request ID is: " +
                                          newGuestRequest.GuestRequestKey.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "B":
                    HostingUnit newHostingUnit = addUnit();
                    try
                    {
                        bl.AddHostingUnit(newHostingUnit);
                        Console.WriteLine("Your hosting unit received successfully! hosting unit ID is: " +
                                          newHostingUnit.HostingUnitKey.ToString() + "   host ID is: " + newHostingUnit.Owner.HostKey.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "C":
                    Console.Write("Enter your hosting unit's ID: ");
                    tmp = Console.ReadLine();
                    HostingUnit updateHostingUnit = addUnit();
                    updateHostingUnit.HostingUnitKey = long.Parse(tmp);
                    try
                    {
                        updateHostingUnit.Owner.HostKey = bl.GetHostingUnitByKey(long.Parse(tmp)).Owner.HostKey;
                        bl.UpdateHostingUnit(updateHostingUnit);
                        Console.WriteLine("Hosting unit updates successfully!");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "D":
                    Console.Write("Enter your hosting unit's ID for deleting: ");
                    tmp = Console.ReadLine();
                    try
                    {
                        bl.DeleteHostingUnit(bl.GetHostingUnitByKey(long.Parse(tmp)));
                        Console.WriteLine("Hosting unit deleted successfully!");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "E":
                    Console.Write("Enter your host ID: ");
                    tmp = Console.ReadLine();
                    Console.WriteLine("Here is the orders for your hosting units:");
                    List <Order> ordersForHost = bl.ReceiveOrdersForHost(long.Parse(tmp));
                    if (ordersForHost.Count != 0)
                    {
                        foreach (var item in ordersForHost)
                        {
                            Console.WriteLine(item);
                        }
                        Console.WriteLine("Enter the required order key which you wand to update it's status");
                        string orderKey = Console.ReadLine();
                        Console.WriteLine("Do you want to make a deal/ close order due to gest disinterest?" +
                                          " answer 1 - for making a deal, 2 - for closing order");
                        tmp = Console.ReadLine();
                        while (tmp != "1" && tmp != "2")
                        {
                            Console.WriteLine("Invalid answer, please enter correct answer.");
                            tmp = Console.ReadLine();
                        }
                        try
                        {
                            Order updateOrder = bl.GetOrderByKey(long.Parse(orderKey));
                            updateOrder.Status = tmp == "1" ? Enum_s.OrderStatus.נסגר_בשל_הענות : Enum_s.OrderStatus.נסגר_בשל_חוסר_הענות;
                            bl.UpdateOrder(updateOrder);
                            Console.WriteLine("Order status updates successfully!");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                    else
                    {
                        Console.WriteLine("There are no orders for you.");
                    }
                    break;

                case "F":
                    Console.Write("Enter order ID for cancelation: ");
                    tmp = Console.ReadLine();
                    try
                    {
                        bl.DeleteOrder(bl.GetOrderByKey(long.Parse(tmp)));
                        Console.WriteLine("Order canceled successfully!");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "G":
                    Console.WriteLine("Hosting units inventory:");
                    foreach (var item in bl.ReceiveHostingUnitList())
                    {
                        Console.WriteLine(item);
                    }
                    break;

                case "H":
                    Console.WriteLine("Guest requests inventory:");
                    foreach (var item in bl.ReceiveGuestRequestList())
                    {
                        Console.WriteLine(item);
                    }
                    break;

                case "I":
                    Console.WriteLine("Orders inventory:");
                    foreach (var item in bl.ReceiveOrderList())
                    {
                        Console.WriteLine(item);
                    }
                    break;

                case "J":
                    Console.WriteLine("Enter required order ID: ");
                    tmp = Console.ReadLine();
                    try
                    {
                        Console.WriteLine(bl.GetOrderByKey(long.Parse(tmp)));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "K":
                    Console.WriteLine("Enter required hosting unit ID: ");
                    tmp = Console.ReadLine();
                    try
                    {
                        Console.WriteLine(bl.GetHostingUnitByKey(long.Parse(tmp)));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "L":
                    foreach (var item in bl.ExpiredOrders())
                    {
                        Console.WriteLine(item);
                    }
                    break;

                case "M":
                    Console.Write("Enter guest request ID: ");
                    tmp = Console.ReadLine();
                    try
                    {
                        GuestRequest myGuestRequest = bl.GetGuestRequestByKey(long.Parse(tmp));
                        Console.WriteLine(bl.SumOrdersForGuest(myGuestRequest));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "N":
                    Console.Write("Enter hosting unit ID: ");
                    tmp = Console.ReadLine();
                    try
                    {
                        HostingUnit newHostingUnit1 = bl.GetHostingUnitByKey(long.Parse(tmp));
                        Console.WriteLine("Sum of responded or sended orders: " + bl.SumOrdersSendedOrResponded(newHostingUnit1, x => x.Status == Enum_s.OrderStatus.נשלח_מייל));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    break;

                case "O":
                    foreach (var item in bl.GroupGuestRequestByAreas())
                    {
                        Console.WriteLine(item.Key);
                        foreach (var item2 in item)
                        {
                            Console.WriteLine(item2);
                        }
                    }
                    break;

                case "P":
                    foreach (var item in bl.GroupGuestRequestByNumberOfAdults())
                    {
                        Console.WriteLine(item.Key);
                        foreach (var item2 in item)
                        {
                            Console.WriteLine(item2);
                        }
                    }
                    break;

                case "Q":
                    foreach (var item in bl.GroupGuestRequestByNumberOfChildren())
                    {
                        Console.WriteLine(item.Key);
                        foreach (var item2 in item)
                        {
                            Console.WriteLine(item2);
                        }
                    }
                    break;

                case "R":
                    foreach (var item in bl.GroupHostByNumberOfHostingUnit())
                    {
                        Console.WriteLine(item.Key);
                        foreach (var item2 in item)
                        {
                            Console.WriteLine(item2);
                        }
                    }
                    break;

                case "S":
                    foreach (var item in bl.GroupHostingUnitByAreas())
                    {
                        Console.WriteLine(item.Key);
                        foreach (var item2 in item)
                        {
                            Console.WriteLine(item2);
                        }
                    }
                    break;

                default:
                    Console.WriteLine("Invalid choice.");
                    break;
                }
            } while (choice != "X");
        }