public List <PropertyAddress> GetPropertyAddresses()
        {
            List <PropertyAddress> propertyAddresses = new List <PropertyAddress> ();

            lock (locker) {
                IEnumerable <Property> properties = GetProperties();

                foreach (Property p in properties)
                {
                    Address a = GetAddress(p.address_id);
                    //  Not allowed?
                    //PropertyAddress propAdd = (PropertyAddress)p;
                    PropertyAddress prop = new PropertyAddress();
                    prop.address_id      = p.address_id;
                    prop.num_bathrooms   = prop.num_bathrooms;
                    prop.num_bedrooms    = prop.num_bedrooms;
                    prop.can_mix_tenants = prop.can_mix_tenants;
                    prop.address         = a;

                    propertyAddresses.Add(prop);
                }
            }

            return(propertyAddresses);
        }
Пример #2
0
        public List <PropertyAddress> GetPropertyAddresses()
        {
            List <PropertyAddress> propertyAddresses = new List <PropertyAddress> ();

            lock (locker) {
                IEnumerable <Property> properties = GetProperties();
                var addressIds = properties.Select(x => x.address_id).Distinct();
                var addresses  = GetAddresses().Where(x => addressIds.Contains(x.address_id)).Distinct()
                                 .ToDictionary(x => x.address_id, x => x);

                foreach (Property p in properties)
                {
                    PropertyAddress prop = new PropertyAddress();
                    prop.property_id     = p.property_id;
                    prop.address_id      = p.address_id;
                    prop.num_bathrooms   = p.num_bathrooms;
                    prop.num_bedrooms    = p.num_bedrooms;
                    prop.can_mix_tenants = p.can_mix_tenants;
                    prop.address         = addresses[p.address_id];

                    propertyAddresses.Add(prop);
                }
            }

            return(propertyAddresses);
        }
        public void SavePropertyAddress(PropertyAddress propAdd)
        {
            var addressId = SaveAddress(propAdd.address);

            propAdd.address_id = addressId;
            Property p = new Property();

            p.address_id      = propAdd.address_id;
            p.can_mix_tenants = propAdd.can_mix_tenants;
            p.num_bedrooms    = propAdd.num_bedrooms;
            p.num_bathrooms   = propAdd.num_bathrooms;
            SaveProperty(p);
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();

            propertyAddress = BindingContext as PropertyAddress;
            if (propertyAddress == null || propertyAddress.property_id <= 0)
            {
                if (deleteButton != null)
                {
                    deleteButton.IsVisible = false;
                }
            }
        }
        public PropertyPage()
        {
            Title = "Property";

            var address1Label = new Label {
                Text = "Address 1"
            };
            var address1 = new Entry {
                Placeholder = "Address", StyleId = "UserId"
            };

            address1.SetBinding(Entry.TextProperty, "address.address_line_1");

            var address2Label = new Label {
                Text = "Address 2"
            };
            var address2 = new Entry {
                Placeholder = "Address 2", StyleId = "UserId"
            };

            address2.SetBinding(Entry.TextProperty, "address.address_line_2");

            var cityLabel = new Label {
                Text = "City"
            };
            var city = new Entry {
                Placeholder = "City", StyleId = "UserId"
            };

            city.SetBinding(Entry.TextProperty, "address.city");

            var stateLabel = new Label {
                Text = "State"
            };
            var state = new Entry {
                Placeholder = "State", StyleId = "UserId"
            };

            state.SetBinding(Entry.TextProperty, "address.state");

            var zipLabel = new Label {
                Text = "Zip"
            };
            var zip = new Entry {
                Placeholder = "Zip", StyleId = "UserId"
            };

            zip.SetBinding(Entry.TextProperty, "address.zip");

            var numBedroomsLabel = new Label {
                Text = "Number of Bedrooms: "
            };

            var numBedrooms = new Entry {
                Placeholder = "Bedrooms", StyleId = "UserId"
            };

            numBedrooms.SetBinding(Entry.TextProperty, "num_bedrooms");

            var numBathroomsLabel = new Label {
                Text = "Number of Bathrooms"
            };
            var numBathrooms = new Entry {
                Placeholder = "Bathrooms", StyleId = "UserId"
            };

            numBathrooms.SetBinding(Entry.TextProperty, "num_bathrooms");

            //var canMixTenantsLabel = new Label {
            //	Text = "Can Mix Tenants?"
            //};

            //var canMixTenants = new Entry { Placeholder = "Mix Tenants", StyleId = "UserId" };
            //canMixTenants.SetBinding (Entry.TextProperty, "can_mix_tenants");

            //BindingContext = Model;

            var saveButton = new Button {
                Text = "Save"
            };

            saveButton.Clicked += (sender, args) =>
            {
                if (propertyAddress == null)
                {
                    propertyAddress = new PropertyAddress();
                }

                if (propertyAddress.property_id > 0)
                {
                    propertyAddress.address_id = Convert.ToInt32(propertyAddress.address_id);
                }

                propertyAddress.address.address_line_1 = address1.Text;
                propertyAddress.address.address_line_2 = address2.Text;
                propertyAddress.address.city           = city.Text;
                propertyAddress.address.state          = state.Text;
                propertyAddress.address.zip            = zip.Text;

                propertyAddress.address_id = propertyAddress.address_id;

                int intOut = 0;
                if (Int32.TryParse(numBathrooms.Text, out intOut))
                {
                    propertyAddress.num_bathrooms = intOut;
                }
                else
                {
                    propertyAddress.num_bathrooms = 0;
                }

                if (Int32.TryParse(numBedrooms.Text, out intOut))
                {
                    propertyAddress.num_bedrooms = intOut;
                }
                else
                {
                    propertyAddress.num_bedrooms = 0;
                }

                //propertyAddress.can_mix_tenants = Convert.ToInt32(canMixTenants.Text);

                //propertyAddress.num_bathrooms = Convert.ToInt32(numBathrooms.Text);
                //propertyAddress.num_bedrooms = Convert.ToInt32(numBedrooms.Text);
                //propertyAddress.can_mix_tenants = Convert.ToInt32(canMixTenants.Text);

                DatabaseHelper dbHelper = new DatabaseHelper();
                dbHelper.SavePropertyAddress(propertyAddress);
                Navigation.PopAsync();
            };

            deleteButton = new Button {
                Text = "Delete"
            };
            deleteButton.Clicked += (sender, args) =>
            {
                DatabaseHelper dbHelper = new DatabaseHelper();
                dbHelper.DeleteProperty(propertyAddress.property_id);
                Navigation.PopAsync();
            };

            var grid = new Grid()
            {
                HorizontalOptions = LayoutOptions.CenterAndExpand
            };

            grid.Children.Add(address1Label, 0, 0);
            grid.Children.Add(address1, 1, 0);
            grid.Children.Add(address2Label, 0, 1);
            grid.Children.Add(address2, 1, 1);
            grid.Children.Add(cityLabel, 0, 2);
            grid.Children.Add(city, 1, 2);
            grid.Children.Add(stateLabel, 0, 3);
            grid.Children.Add(state, 1, 3);
            grid.Children.Add(zipLabel, 0, 4);
            grid.Children.Add(zip, 1, 4);
            grid.Children.Add(numBedroomsLabel, 0, 5);
            grid.Children.Add(numBedrooms, 1, 5);
            grid.Children.Add(numBathroomsLabel, 0, 6);
            grid.Children.Add(numBathrooms, 1, 6);
            //grid.Children.Add (canMixTenantsLabel, 0, 7);
            //grid.Children.Add (canMixTenants, 1, 7);

            Content = new StackLayout()
            {
                VerticalOptions = LayoutOptions.Center,
                Padding         = new Thickness(30),
                Children        = { grid, saveButton, deleteButton }
            };
        }