public object NuevoObjeto()
        {
            GI.BR.Propiedades.Propiedad propiedad = new GI.BR.Propiedades.PropiedadFactory().CrearClasePropiedad(tipoPropiedad);

            frmFichaPropiedad frmFicha = new frmFichaPropiedad();

            frmFicha.Propiedad = propiedad;
            frmFicha.SoloLectura = false;
            if (frmFicha.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                return propiedad;

            return null;
        }
        public void cargarPropiedades()
        {
            propiedades.Clear();
            if (radioListTipoBusqueda.SelectedValue == "Codigo")
            {
                if (tbCodigo.Text != "")
                {

                    GI.BR.Propiedades.PropiedadFactory pf = new GI.BR.Propiedades.PropiedadFactory();

                    GI.BR.Propiedades.Propiedad propiedad = pf.GetPropiedad(int.Parse(tbCodigo.Text));

                    if (propiedad != null)
                        propiedades.Add(propiedad);
                }
            }
            else
            {
                GI.Managers.Propiedades.MngPropiedades mngPropiedades = new GI.Managers.Propiedades.MngPropiedades();

                #region Armo los objetos para pasarle al  manager de busqueda.

                System.Collections.Generic.List<GI.BR.Propiedades.Ubicacion> ubicaciones = GetUbicaciones();

                Type tipoOperacion = null;

                if (radioListTipoBusqueda.SelectedValue == "GI.BR.Propiedades.Alquiler")
                    tipoOperacion = typeof(GI.BR.Propiedades.Alquiler);
                else
                    tipoOperacion = typeof(GI.BR.Propiedades.Venta);

                GI.BR.Propiedades.EstadoPropiedad estadoPropiedad = GI.BR.Propiedades.EstadoPropiedadFlyweigthFactory.GetInstancia(tipoOperacion).GetEstadoBase();
                GI.BR.Propiedades.EstadoPropiedad estadoPropiedadReservado = GI.BR.Propiedades.EstadoPropiedadFlyweigthFactory.GetInstancia(tipoOperacion).GetEstadoReservado();

                GI.BR.Valor valorDesde = getValor(tbValorDesde.Text, int.Parse(ddlMoneda.SelectedValue));
                GI.BR.Valor valorHasta = getValor(tbValorHasta.Text, int.Parse(ddlMoneda.SelectedValue));
                #endregion

                if (getTipoPropiedad() != null)
                {
                    if (getTipoPropiedad().Descripcion == "Chalet")
                    {
                        //Recupero propiedades en venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Casa"), estadoPropiedad, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                        //Recupero propiedades reservadas de venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Casa"), estadoPropiedadReservado, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                    }

                    if (getTipoPropiedad().Descripcion == "Casa")
                    {
                        //Recupero propiedades en venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Chalet"), estadoPropiedad, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                        //Recupero propiedades reservadas de venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Chalet"), estadoPropiedadReservado, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                    }

                    if (getTipoPropiedad().Descripcion == "Duplex")
                    {
                        //Recupero propiedades en venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Triplex"), estadoPropiedad, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                        //Recupero propiedades reservadas de venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Triplex"), estadoPropiedadReservado, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                    }

                    if (getTipoPropiedad().Descripcion == "Triplex")
                    {
                        //Recupero propiedades en venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Duplex"), estadoPropiedad, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                        //Recupero propiedades reservadas de venta o alquiler.
                        propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad("Duplex"), estadoPropiedadReservado, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                    }
                }

                //Recupero propiedades en venta o alquiler.
                propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad(), estadoPropiedad, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));
                //Recupero propiedades reservadas de venta o alquiler.
                propiedades.AddRange(mngPropiedades.RecuperarPropiedades(tipoOperacion, getTipoPropiedad(), estadoPropiedadReservado, getAmbientes(), GetUbicaciones(), valorDesde, valorHasta));

            }

            OrdenarPropiedades(propiedades);

            Session["Propiedades"] = propiedades;
        }