private void RefreshSources(List <Publicacion> publications)
        {
            ClearDataGridView();
            var publicationsDictionary = new Dictionary <int, Publicacion>();

            #region Get the dictionary of visibilities

            if (publications == null)
            {
                //El datasource debe contener a todos los registros de publicaciones activas
                _publications = PublicacionPersistance.GetAllActive();
                if (_publications != null)
                {
                    publicationsDictionary = _publications.ToDictionary(a => a.ID, a => a);
                }
            }
            else
            {
                //El datasource debe ser la lista de publicaciones recibida por parámetro
                publicationsDictionary = _publications.ToDictionary(a => a.ID, a => a);
            }

            #endregion

            #region Cargar publicaciones en la grilla
            var bind = publicationsDictionary.Values.Select(a => new
            {
                ID                   = a.ID,
                Descripcion          = a.Descripcion,
                Inicio               = a.FechaInicio,
                Vencimiento          = a.FechaVencimiento,
                Stock                = a.Stock,
                Precio               = (OfertaPersistance.GetLastOfertaByPublication(a.ID) != null) ? OfertaPersistance.GetLastOfertaByPublication(a.ID).Monto: a.Precio,
                RecibirPreguntas     = a.RecibirPreguntas,
                Tipo                 = a.TipoPublicacion.Descripcion,
                Visibilidad          = a.Visibilidad.Descripcion,
                Rubros               = a.GetTextRubros(),
                CalificacionVendedor = CalificacionPersistance.GetByUserId(a.UsuarioCreador)
            });

            var bindlist = bind.ToList();
            if (bindlist.Count - _offset > 10)
            {
                DgvPublicacion.DataSource = bindlist.GetRange(_offset, 10); //paginas de a 10 contenidos
            }
            else
            {
                DgvPublicacion.DataSource = bindlist.GetRange(_offset, bindlist.Count - _offset);
            }
            DgvPublicacion.Columns[9].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            AddButtonsColumns();
            #endregion

            if (bindlist.Count < 10) //si tiene menos de 10 registros no debe paginar
            {
                lblFirst.Visible    = false;
                lblPrevious.Visible = false;
                lblNext.Visible     = false;
                lblLast.Visible     = false;
            }

            //Cargo los rubros
            var rubros = RubroPersistance.GetAll();
            LstRubro.DataSource    = rubros;
            LstRubro.DisplayMember = "Descripcion";
            LstRubro.ValueMember   = "ID";
        }
예제 #2
0
        private void FrmGenerarPublicacion_Load(object sender, EventArgs e)
        {
            #region Display all sources

            var publicationTypes = TipoPublicacionPersistance.GetAll();
            CboTipoPublicacion.DisplayMember = "Descripcion";
            CboTipoPublicacion.ValueMember   = "ID";
            CboTipoPublicacion.DataSource    = publicationTypes;

            var publicationStates = EstadoPublicacionPersistance.GetAll();
            CboEstadoPublicacion.DisplayMember = "Descripcion";
            CboEstadoPublicacion.ValueMember   = "ID";
            CboEstadoPublicacion.DataSource    = publicationStates;

            var visibilities = VisibilidadPersistance.GetAll();
            CboVisibilidad.DisplayMember = "Descripcion";
            CboVisibilidad.ValueMember   = "ID";
            CboVisibilidad.DataSource    = visibilities;

            var rubros = RubroPersistance.GetAll();
            LstRubro.DataSource    = rubros;
            LstRubro.DisplayMember = "Descripcion";
            LstRubro.ValueMember   = "ID";

            #endregion

            if (!insertMode)
            {
                #region Load updating publication data

                CurrentPublication.GetObjectsById();

                CboEstadoPublicacion.Text = CurrentPublication.EstadoPublicacion.Descripcion;
                CboTipoPublicacion.Text   = CurrentPublication.TipoPublicacion.Descripcion;
                CboVisibilidad.Text       = CurrentPublication.Visibilidad.Descripcion;
                TxtDescripcion.Text       = CurrentPublication.Descripcion;

                if (CurrentPublication.TipoPublicacion.Descripcion == "Subasta")
                {
                    TxtPrecio.Enabled          = false;
                    TxtValorInicioSubasta.Text = CurrentPublication.Precio.ToString();
                }
                else
                {
                    TxtValorInicioSubasta.Enabled = false;
                    TxtPrecio.Text = CurrentPublication.Precio.ToString();
                }

                TxtStock.Text = CurrentPublication.Stock.ToString();
                ChkRecibirPreguntas.Checked = CurrentPublication.RecibirPreguntas;

                //Marco como chequeados los rubros que ya posee la publicación
                for (int j = 0; j < LstRubro.Items.Count; j++)
                {
                    var checkboxListItem = (Rubro)LstRubro.Items[j];

                    if (CurrentPublication.Rubros.Any(p => p.Descripcion == checkboxListItem.Descripcion))
                    {
                        LstRubro.SetItemChecked(j, true);
                    }
                    else
                    {
                        LstRubro.SetItemChecked(j, false);
                    }
                }

                #endregion

                #region Habilito los controles dependiendo del estado de la publicacion

                switch (CurrentPublication.EstadoPublicacion.Descripcion)
                {
                case "Publicada":
                    #region Publicada

                    DisableUIControls();
                    TxtDescripcion.Enabled       = true;
                    CboEstadoPublicacion.Enabled = true;
                    TxtStock.Enabled             = (CurrentPublication.TipoPublicacion.Descripcion != "Subasta");

                    break;

                    #endregion

                case "Pausada":
                case "Finalizada":
                    #region Pausada y Finalizada

                    LblLimpiar.Enabled = false;
                    DisableUIControls();

                    break;
                    #endregion
                }

                #endregion
            }
        }