示例#1
0
        public static void InitializeFilters(SavableFilters s)
        {
            if (s == null)
            {
                FilterDict.Add("ShowStartPage", false);

                FilterDict.Add("Address", "");

                FilterDict.Add("Buy", true);
                FilterDict.Add("Rent", true);

                FilterDict.Add("House", true);
                FilterDict.Add("Townhouse", true);
                FilterDict.Add("Apartment", true);
                FilterDict.Add("Condo", true);
                FilterDict.Add("Loft", true);
                FilterDict.Add("Duplex", true);

                FilterDict.Add("Water", false);
                FilterDict.Add("Electricity", false);
                FilterDict.Add("Heat", false);
                FilterDict.Add("Internet", false);
                FilterDict.Add("Parking", false);
                FilterDict.Add("Television", false);

                FilterDict.Add("RentMax", 6000);
                FilterDict.Add("BuyMax", 2000000);
                FilterDict.Add("BathsMin", 0);
                FilterDict.Add("BedsMin", 0);
                FilterDict.Add("AddressProx", 3);
            }
            else
            {
                SetFilter("Address", s.FilterDict["Address"].ToString());

                SetFilter("Buy", Convert.ToBoolean(s.FilterDict["Buy"]));
                SetFilter("Rent", Convert.ToBoolean(s.FilterDict["Rent"]));

                SetFilter("House", Convert.ToBoolean(s.FilterDict["House"]));
                SetFilter("Townhouse", Convert.ToBoolean(s.FilterDict["Townhouse"]));
                SetFilter("Apartment", Convert.ToBoolean(s.FilterDict["Apartment"]));
                SetFilter("Condo", Convert.ToBoolean(s.FilterDict["Condo"]));
                SetFilter("Loft", Convert.ToBoolean(s.FilterDict["Loft"]));
                SetFilter("Duplex", Convert.ToBoolean(s.FilterDict["Duplex"]));

                SetFilter("Water", Convert.ToBoolean(s.FilterDict["Water"]));
                SetFilter("Electricity", Convert.ToBoolean(s.FilterDict["Electricity"]));
                SetFilter("Heat", Convert.ToBoolean(s.FilterDict["Heat"]));
                SetFilter("Internet", Convert.ToBoolean(s.FilterDict["Internet"]));
                SetFilter("Parking", Convert.ToBoolean(s.FilterDict["Parking"]));
                SetFilter("Television", Convert.ToBoolean(s.FilterDict["Television"]));

                SetFilter("RentMax", Convert.ToInt32(s.FilterDict["RentMax"]));
                SetFilter("BuyMax", Convert.ToInt32(s.FilterDict["BuyMax"]));
                SetFilter("BathsMin", Convert.ToDouble(s.FilterDict["BathsMin"]));
                SetFilter("BedsMin", Convert.ToInt32(s.FilterDict["BedsMin"]));
                SetFilter("AddressProx", Convert.ToInt32(s.FilterDict["AddressProx"]));
            }
        }
示例#2
0
        private void LoadSaveClick(object sender, EventArgs e)
        {
            SavableFilters saved_filters = new SavableFilters();

            saved_filters.ReadFilters(searchname);
            Filters.InitializeFilters(saved_filters);
            p.Cancel_Click(sender, e);
        }
示例#3
0
        public void Save_Click(object sender, EventArgs e)
        {
            SavableFilters saved_filters = new SavableFilters();

            saved_filters.FilterDict.Add("Sub", SearchSubButton.FilterActive);
            saved_filters.FilterDict.Add("Email", email_field.email_text_field.Text);
            MainPage.saved_searches.Add(SearchName.Text, saved_filters);
            saved_filters.SaveFilters(SearchName.Text + ".xml");
            Cancel_Click(sender, e);
        }
示例#4
0
        public SavedSearchEntry(ViewSavedSearchesPopup parent, string name, SavableFilters search)
        {
            InitializeComponent();
            SearchName.Content = name;
            p            = parent;
            searchname   = name;
            isSubscribed = Convert.ToBoolean(search.FilterDict["Sub"]);
            subEmail     = search.FilterDict["Email"].ToString();
            s            = search;

            SearchSubButton.FilterActive = isSubscribed;
            email_field.EmailTextField.email_text_field.Text = subEmail;
            EmailUpdated(null, null);
            email_field.EmailTextField.email_text_field.TextChanged += EmailUpdated;
            email_field.SaveEmail.Click += SaveClicked;
        }
示例#5
0
        public void SaveSavedListing(object sender, EventArgs e)
        {
            List <int> saved_listings = new List <int>();

            foreach (Pin pin in PinCollection.pins)
            {
                if (pin.GetType() == typeof(ListingPin))
                {
                    if (((ListingPin)pin).listing.Saved)
                    {
                        saved_listings.Add(((ListingPin)pin).listing.ID);
                    }
                }
            }
            SavableFilters s = new SavableFilters();

            s.SaveListings("SavedListings.xml", saved_listings);
        }
示例#6
0
        public MainWindow()
        {
            Filters.InitializeFilters(null);
            InitializeComponent();

            String firstLaunch = Utilities.ReadFromConfig("firstLaunch");

            if (firstLaunch != null && firstLaunch.Equals("true"))
            {
                NavigationFrame.Navigate(new MainPage());
                //NavigationFrame.Navigate(new StartPage());
            }
            else
            {
                NavigationFrame.Navigate(new StartPage());
            }

            System.IO.Directory.CreateDirectory("SavedFilters");
            if (System.IO.File.Exists("SavedListings.xml"))
            {
                SavableFilters s = new SavableFilters();
                s.ReadListings("SavedListings.xml");
            }
        }
示例#7
0
        public MainPage()
        {
            InitializeComponent();

            SetRentEnabled(Filters.FilterDict["Rent"]);
            Filters.ObserverDict.Add("Rent", new Action <object>(SetRentEnabled));

            SetBuyEnabled(Filters.FilterDict["Buy"]);
            Filters.ObserverDict.Add("Buy", new Action <object>(SetBuyEnabled));

            AddressTextBox.LostFocus += UpdateAddressText;
            SetAddress(Filters.FilterDict["Address"]);
            Filters.ObserverDict.Add("Address", new Action <object>(SetAddress));

            SetAddressProx(Filters.FilterDict["AddressProx"]);
            Filters.ObserverDict.Add("AddressProx", new Action <object>(SetAddressProx));

            Filters.ObserverDict.Add("House", new Action <object>(SetHouseFilter));
            Filters.ObserverDict.Add("Townhouse", new Action <object>(SetTownhouseFilter));
            Filters.ObserverDict.Add("Apartment", new Action <object>(SetApartmentFilter));
            Filters.ObserverDict.Add("Condo", new Action <object>(SetCondoFilter));
            Filters.ObserverDict.Add("Loft", new Action <object>(SetLoftFilter));
            Filters.ObserverDict.Add("Duplex", new Action <object>(SetDuplexFilter));

            Filters.ObserverDict.Add("Water", new Action <object>(SetWaterFilter));
            Filters.ObserverDict.Add("Electricity", new Action <object>(SetElectricityFilter));
            Filters.ObserverDict.Add("Heat", new Action <object>(SetHeatFilter));
            Filters.ObserverDict.Add("Internet", new Action <object>(SetInternetFilter));
            Filters.ObserverDict.Add("Parking", new Action <object>(SetParkingFilter));
            Filters.ObserverDict.Add("Television", new Action <object>(SetTelevisionFilter));

            Filters.ObserverDict.Add("RentMax", new Action <object>(SetRentValue));
            Filters.ObserverDict.Add("BuyMax", new Action <object>(SetBuyValue));
            Filters.ObserverDict.Add("BedsMin", new Action <object>(SetBedValue));
            Filters.ObserverDict.Add("BathsMin", new Action <object>(SetBathValue));

            ListingsView.PreviewMouseWheel += PreviewMouseWheel;

            string[] files = Directory.GetFiles("SavedFilters");
            foreach (string file in files)
            {
                SavableFilters s = new SavableFilters();
                s.ReadFilters(file.Remove(file.Length - 4).Substring(13));
                saved_searches.Add(file.Remove(file.Length - 4).Substring(13), s);
            }

            // Once everything is loaded, calculate where the pins should be placed based on actual size of components
            Loaded += delegate
            {
                foreach (Pin p in PinCollection.pins)
                {
                    MainGrid.Children.Add(p);
                    Grid.SetColumn(p, 0);
                    Grid.SetRow(p, 1);
                    Grid.SetZIndex(p, 2);

                    // Set initial position
                    p.Margin = GetMapLocationAsMargin(p, p.Width, p.Height * 2);

                    currentBasePin = PinCollection.pins.Where(x => x.address != null &&
                                                              (x.address.Equals(AddressTextBox.Text) || (PinCollection.searchLocations[x.address] != null && PinCollection.searchLocations[x.address].Equals(AddressTextBox.Text)))).FirstOrDefault();

                    PinCollection.RefreshPins(false);
                    UpdateSearchAreaCircle();
                }
            };

            // Update pin locations when the map is zoomed or translated, or when the window is resized
            MapBorder.OnUpdateTransform += OnUpdateMapTransform;
            SizeChanged += OnSizeChanged;
            MouseWheel  += OnMouseWheel;

            locations = new List <string>();
            locations.AddRange(PinCollection.searchLocations.Keys);
            locations.AddRange(PinCollection.searchLocations.Values);

            AddressTextBox.ItemsSource = locations;

            sideBarListings = new Dictionary <Pin, SideBarItem>();
            foreach (Pin i in PinCollection.pins)
            {
                if (i.GetType() == typeof(ListingPin))
                {
                    i.Click += OnPinClick;
                    SideBarItem item = new SideBarItem(((ListingPin)i).listing);
                    item.Click += Sidebar_Button_Click;
                    sideBarListings.Add(i, item);
                }
                ;
            }
            emptySidebarButton = new Button
            {
                Height      = 50,
                Background  = Brushes.Transparent,
                BorderBrush = Brushes.Transparent,
            };
            UpdateListings();

            MainGrid.MouseDown += MainGrid_MouseDown;
        }