public FrmDetallePublicacion(Publicacion unaPublicacion)
        {
            InitializeComponent();

            CurrentPublication = unaPublicacion;
            //Traigo todos los objetos relacionados con la publicación
            CurrentPublication.GetObjectsById();

            //Si la publicación no es del usuario logeado y el usuario logeado es un cliente le permito
            //ver las opciones de comprar/ofertar/preguntar (Todas los los controles respectivos a estas funciones
            //tienen enabled=false como default
            if (CurrentPublication.UsuarioCreador.ID != SessionManager.CurrentUser.ID)
            {
                if (CurrentPublication.RecibirPreguntas)
                {
                    lblPreguntar.Enabled = true;
                }
                else
                {
                    lblErrorPreguntar.Visible = true;
                }

                if (CurrentPublication.TipoPublicacion.Descripcion == "Subasta")
                {
                    lblOfertar.Enabled   = true;
                    txtMonto.Enabled     = true;
                    lblMontoText.Enabled = true;
                }
                else
                {
                    LblComprar.Enabled      = true;
                    lblCantidadText.Enabled = true;
                    txtCantidad.Enabled     = true;
                }
            }
            else
            {
                lblErrorComprarOfertar.Visible = true;
                lblErrorPreguntar.Visible      = true;
            }

            //Oculto los controles que no corresponden
            if (CurrentPublication.TipoPublicacion.Descripcion == "Subasta")
            {
                LblComprar.Visible      = false;
                lblCantidadText.Visible = false;
                txtCantidad.Visible     = false;
            }
            else
            {
                lblOfertar.Visible   = false;
                txtMonto.Visible     = false;
                lblMontoText.Visible = false;
            }
        }
        private void RefreshSources()
        {
            CurrentPublication.GetObjectsById();

            //Cargo todos los controles con la publicación actual
            lblTipoPublicacion.Text = CurrentPublication.TipoPublicacion.Descripcion;
            lblDescripcion.Text     = CurrentPublication.Descripcion;
            if (CurrentPublication.TipoPublicacion.Descripcion == "Subasta")
            {
                //Traigo el monto correspondiente. Si es compra inmediata el precio elegido, y si es subasta
                //la última oferta
                Oferta lastOffer = OfertaPersistance.GetLastOfertaByPublication(CurrentPublication.ID);
                if (lastOffer != null)
                {
                    lblPrecio.Text = lastOffer.Monto.ToString();
                }
                else
                {
                    lblPrecio.Text = CurrentPublication.Precio.ToString();
                }
            }
            else
            {
                lblPrecio.Text = CurrentPublication.Precio.ToString();
            }

            lblStock.Text = CurrentPublication.Stock.ToString();

            if (CurrentPublication.RecibirPreguntas)
            {
                //Cargo las preguntas y respuestas
                var questionAnswerDictionary = new Dictionary <int, PreguntaRespuesta>();

                #region Get the dictionary of questions and answers

                List <PreguntaRespuesta> _questionanswers = PublicacionPersistance.GetQuestionsAndAnswersById(CurrentPublication.ID);
                questionAnswerDictionary = _questionanswers.ToDictionary(a => a.IdPregunta, a => a);

                #endregion

                var bind = questionAnswerDictionary.Values.Select(a => new
                {
                    Pregunta  = a.TextoPregunta,
                    Respuesta = a.TextoRespuesta
                });

                DgvPreguntasRespuestas.DataSource = bind.ToList();
                DgvPreguntasRespuestas.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            }
            else
            {
                lblPreguntasText.Visible       = false;
                DgvPreguntasRespuestas.Visible = false;
            }
        }