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); } }
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(); }
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); } }
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]; } }
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) { } } }
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"); }