Exemplo n.º 1
0
        private void RefreshSources(List <PublicacionNotCalified> publicationNotCalified)
        {
            ClearDataGridView();
            var publicationNotCalifiedDictionary = new Dictionary <int, PublicacionNotCalified>();

            if (publicationNotCalified == null)
            {
                //The datasource must be all the publications not calified records stored in the database
                _publicationsNotCalified         = CalificacionPersistance.GetAllPubicacionNotCalified(SessionManager.CurrentUser);
                publicationNotCalifiedDictionary = _publicationsNotCalified.ToDictionary(a => a.ID, a => a);;
            }
            else
            {
                //The datasource must be the list of publications not calified received as parameter
                publicationNotCalifiedDictionary = publicationNotCalified.ToDictionary(a => a.ID, a => a);
            }

            var bind = publicationNotCalifiedDictionary.Values.Select(a => new
            {
                Codigo      = a.ID,
                Descripcion = a.Descripcion,
                Precio      = a.Precio
            });

            dgvPublicaciones.DataSource          = bind.ToList();
            dgvPublicaciones.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            dgvPublicaciones.CurrentCell         = null;
            ShowStars();
        }
        private void RefreshSources(List <HistoryReputacion> history)
        {
            ClearDataGridView();
            var historyDictionary = new Dictionary <int, HistoryReputacion>();

            if (history == null)
            {
                //The datasource must be all the publications not calified records stored in the database
                _history          = CalificacionPersistance.getAllCalifiedByMeToOther(SessionManager.CurrentUser);
                historyDictionary = _history.ToDictionary(a => a.Codigo_Calificacion, a => a);;
            }
            else
            {
                //The datasource must be the list of publications not calified received as parameter
                historyDictionary = history.ToDictionary(a => a.Codigo_Calificacion, a => a);
            }

            var bind = historyDictionary.Values.Select(a => new
            {
                Calificacion       = a.Codigo_Calificacion,
                Descripcion        = a.Descripcion,
                Cantidad_Estrellas = a.Cantidad_Estrellas,
                Nombre             = a.Nombre
            });

            dgvHistory.DataSource          = bind.ToList();
            dgvHistory.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            dgvHistory.CurrentCell         = null;
        }
        private void LblComprar_Click(object sender, EventArgs e)
        {
            try
            {
                if (SessionManager.CurrentRol.Descripcion == "Administrador General")
                {
                    throw new Exception("Siendo un administrador no puede comprar ni ofertar");
                }

                List <PublicacionNotCalified> publications = CalificacionPersistance.GetAllPubicacionNotCalified(SessionManager.CurrentUser);
                if (publications.Count > 5)
                {
                    throw new Exception("Tiene demasiadas compras sin calificar, por favor califíquelas para poder realizar una compra");
                }

                //Valido que ingrese una cantidad válida (mayor a 0 y menor que el stock)
                if (txtCantidad.Text == "" || Int32.Parse(txtCantidad.Text) < 0 || Int32.Parse(txtCantidad.Text) > Int32.Parse(lblStock.Text))
                {
                    throw new Exception("Ingrese una cantidad válida (mayor a 0 y menor que el stock actual)");
                }

                //Creo la nueva compra y la inserto
                Compra newPurchase = new Compra();
                newPurchase.Usuario     = SessionManager.CurrentUser;
                newPurchase.Publicacion = CurrentPublication;
                newPurchase.Fecha       = ConfigurationVariables.FechaSistema;
                newPurchase.Cantidad    = Int32.Parse(txtCantidad.Text);
                newPurchase             = CompraPersistance.Insert(newPurchase, null);

                //Resto el stock de la publicación
                CurrentPublication.Stock = CurrentPublication.Stock - newPurchase.Cantidad;
                if (CurrentPublication.Stock == 0)
                {
                    CurrentPublication.EstadoPublicacion = EstadoPublicacionPersistance.GetById(4); //finalizada
                }
                PublicacionPersistance.Update(CurrentPublication);

                //Le muestro al usuario los datos del vendedor
                var frmDatosVendedor = new FrmDatosVendedor(CurrentPublication.UsuarioCreador);
                frmDatosVendedor.ShowDialog();

                RefreshSources();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 4
0
        private void lblCalificar_Click(object sender, EventArgs e)
        {
            bool validations = true;

            if (calification == 0)
            {
                validations = false;
            }

            if (txtDescripcion.Text == "")
            {
                validations = false;
            }

            if (publicationSelected == 0)
            {
                validations = false;
            }

            if (validations)
            {
                Calificacion califObject = new Calificacion();
                califObject.ID_Comprador   = ((Usuario)SessionManager.CurrentUser).ID;
                califObject.ID_Publicacion = publicationSelected;
                califObject.stars          = calification;
                califObject.description    = txtDescripcion.Text;
                if (califObject.ID_Publicacion != 0)
                {
                    int califId = CalificacionPersistance.InsertCalification(califObject);
                    if (califId != 0)
                    {
                        ClearFiltersAndTable();
                        publicationSelected = 0;
                        txtDescripcion.Text = "";
                        calification        = 0;
                        drawStars(0);

                        MessageBox.Show("La publicación " + califObject.ID_Publicacion + " fué calificada con " + califObject.stars + " estrellas. Descripción: " + califObject.description, "Éxito");
                    }
                }
            }
            else
            {
                MessageBox.Show("Por favor, verifique Calificacion, Descripción y Publicacion seleccionada.", "Atencion");
            }
        }
        private void lblOfertar_Click(object sender, EventArgs e)
        {
            try
            {
                if (SessionManager.CurrentRol.Descripcion == "Administrador General")
                {
                    throw new Exception("Siendo un administrador no puede comprar ni ofertar");
                }

                List <PublicacionNotCalified> publications = CalificacionPersistance.GetAllPubicacionNotCalified(SessionManager.CurrentUser);
                if (publications.Count > 5)
                {
                    throw new Exception("Tiene demasiadas compras sin calificar, por favor califíquelas para poder realizar una compra");
                }

                //Valido que la oferta sea mayor a la última
                if (txtMonto.Text == "" || Int32.Parse(txtMonto.Text) <= Int32.Parse(lblPrecio.Text))
                {
                    throw new Exception("El monto a ofertar debe ser mayor que la oferta actual");
                }

                //Creo la nueva oferta y la inserto
                Oferta newOffer = new Oferta();
                newOffer.IdUsuario     = SessionManager.CurrentUser.ID;
                newOffer.IdPublicacion = CurrentPublication.ID;
                newOffer.Fecha         = ConfigurationVariables.FechaSistema;
                newOffer.Monto         = Int32.Parse(txtMonto.Text);
                newOffer = OfertaPersistance.Insert(newOffer, null);
                MessageBox.Show("Se insertó la oferta correctamente");
                RefreshSources();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        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";
        }
        private void LblBuscar_Click(object sender, EventArgs e)


        {
            try
            {
                #region Validations

                var filtersSetted    = false;
                var exceptionMessage = string.Empty;

                if (!TypesHelper.IsEmpty(txtCodigo.Text))
                {
                    filtersSetted = true;
                    if (!TypesHelper.IsNumeric(txtCodigo.Text))
                    {
                        exceptionMessage += Environment.NewLine + "El código debe ser numérico.";
                    }
                }
                if (!TypesHelper.IsEmpty(txtDesc.Text))
                {
                    filtersSetted = true;
                }

                if (!TypesHelper.IsEmpty(txtCantidad.Text))
                {
                    filtersSetted = true;
                    if (!TypesHelper.IsNumeric(txtCantidad.Text))
                    {
                        exceptionMessage += Environment.NewLine + "La cantidad debe ser numérica.";
                    }
                }

                if (!TypesHelper.IsEmpty(txtNombre.Text))
                {
                    filtersSetted = true;
                }


                if (!filtersSetted)
                {
                    exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro";
                }

                if (!TypesHelper.IsEmpty(exceptionMessage))
                {
                    throw new Exception(exceptionMessage);
                }

                #endregion

                var filters = new HistoryReputacionFilters
                {
                    Codigo      = (!TypesHelper.IsEmpty(txtCodigo.Text)) ? Convert.ToInt32(txtCodigo.Text) : (int?)null,
                    Descripcion = (!TypesHelper.IsEmpty(txtDesc.Text)) ? txtDesc.Text : null,
                    Cantidad    = (!TypesHelper.IsEmpty(txtCantidad.Text)) ? Convert.ToInt32(txtCantidad.Text) : (int?)null,
                    Nombre      = (!TypesHelper.IsEmpty(txtNombre.Text)) ? txtNombre.Text : null
                };

                var historyReputacion = (cBExact.Checked) ? CalificacionPersistance.getAllCalifiedToMeByParameters(SessionManager.CurrentUser, filters) : CalificacionPersistance.getAllCalifiedToMeByParametersLike(SessionManager.CurrentUser, filters);

                if (historyReputacion == null || historyReputacion.Count == 0)
                {
                    throw new Exception("No se encontraron calificaciones según los filtros informados.");
                }

                RefreshSources(historyReputacion);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Atención");
                ClearFiltersAndTable();
            }
        }
Exemplo n.º 8
0
        private void LblBuscar_Click_1(object sender, EventArgs e)
        {
            try
            {
                #region Validations

                var filtersSetted    = false;
                var exceptionMessage = string.Empty;

                if (!TypesHelper.IsEmpty(txtCodigo.Text))
                {
                    filtersSetted = true;
                    if (!TypesHelper.IsNumeric(txtCodigo.Text))
                    {
                        exceptionMessage += Environment.NewLine + "El código debe ser numérico.";
                    }
                }
                if (!TypesHelper.IsEmpty(txtDesc.Text))
                {
                    filtersSetted = true;
                }

                if (!TypesHelper.IsEmpty(txtPrecio.Text))
                {
                    filtersSetted = true;
                    if (!TypesHelper.IsDecimal(txtPrecio.Text))
                    {
                        exceptionMessage += Environment.NewLine + "El precio de la publicacion ser decimal (o numérico).";
                    }
                }


                if (!filtersSetted)
                {
                    exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro";
                }

                if (!TypesHelper.IsEmpty(exceptionMessage))
                {
                    throw new Exception(exceptionMessage);
                }

                #endregion

                var filters = new PublicacionNotCalifiedFilters
                {
                    Codigo      = (!TypesHelper.IsEmpty(txtCodigo.Text)) ? Convert.ToInt32(txtCodigo.Text) : (int?)null,
                    Descripcion = (!TypesHelper.IsEmpty(txtDesc.Text)) ? txtDesc.Text : null,
                    Precio      = (!TypesHelper.IsEmpty(txtPrecio.Text)) ? Convert.ToDouble(txtPrecio.Text) : (double?)null,
                };

                var pubNotCalified = (cBExact.Checked) ? CalificacionPersistance.GetAllPubicacionNotCalifiedByParameters(filters, SessionManager.CurrentUser) : CalificacionPersistance.GetAllPubicacionNotCalifiedByParametersLike(filters, SessionManager.CurrentUser);

                if (pubNotCalified == null || pubNotCalified.Count == 0)
                {
                    throw new Exception("No se encontraron publicaciones no calificadas según los filtros informados.");
                }

                RefreshSources(pubNotCalified);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Atención");
                ClearFiltersAndTable();
            }
        }