private void btnAceptar_Click(object sender, EventArgs e)
        {
            Review analisis = new Review();

            if (lstProductos.SelectedIndex == -1)
            {
                MessageBox.Show("Favor seleccionar un producto antes de guardar el análisis.", "Información");
            }
            else
            {
                try
                {
                    analisis.productId = Producto.CodigoProducto(lstProductos.SelectedItem.ToString());
                    analisis.reviewerName = txtNombre.Text.ToString();
                    analisis.emailAddress = txtEmail.Text.ToString();
                    analisis.rating = int.Parse(txtValor.Text.ToString());
                    analisis.comments = txtComentarios.Text.ToString();
                    analisis.reviewDate = DateTime.Now;
                    analisis.modifiedDate = DateTime.Now;

                    if (analisis.rating > 5 || analisis.rating < 0)
                    {
                        throw new CustomException("El rango permitido para la valoración está entre 0 y 5");
                    }
                    else if (Review.InsertarReview(analisis))
                    {
                        MessageBox.Show("¡Su análisis ha sido registrado con éxito!", "Información");
                    }
                    else
                    {
                        throw new CustomException("Hubo un error al momento de ingresar su análisis...");
                    }
                }
                catch(FormatException)
                {
                    MessageBox.Show("Sólo se permiten valores en el rango entre 0 y 5", "Información");
                }
                catch (CustomException ex)
                {
                    MessageBox.Show(ex.Message, "Información");
                }
            }
        }
Beispiel #2
0
        public static bool InsertarReview(Review review)
        {
            SqlConnection conn = new SqlConnection(@"server = .\sqlexpress;
                integrated security = true; database = AdventureWorks2014");
            string sql;

            sql = "Insert into Production.ProductReview (ProductId, ReviewerName, ReviewDate, EmailAddress, Rating, Comments, ModifiedDate) Values (@productId, @name, @reviewDate, @email, @rating, @comments, @modifiedDate)";

            SqlCommand cmd = new SqlCommand(sql, conn);

            try
            {
                conn.Open();

                if (!new EmailAddressAttribute().IsValid(review.emailAddress))
                    throw new CustomException("¡Dirección de correo no válida! Favor verifique.", "Información");

                using (cmd)
                {
                    cmd.Parameters.Add("@productId", SqlDbType.Int).Value = review.productId;
                    cmd.Parameters.Add("@name", SqlDbType.NVarChar, 50).Value = review.reviewerName;
                    cmd.Parameters.Add("@reviewDate", SqlDbType.DateTime).Value = review.reviewDate;
                    cmd.Parameters.Add("@email", SqlDbType.NVarChar, 50).Value = review.emailAddress;
                    cmd.Parameters.Add("@rating", SqlDbType.Int).Value = review.rating;
                    cmd.Parameters.Add("@comments", SqlDbType.NVarChar, 3850).Value = review.comments;
                    cmd.Parameters.Add("@modifiedDate", SqlDbType.DateTime).Value = review.modifiedDate;

                    cmd.ExecuteNonQuery();
                }

                return true;
            }
            catch (CustomException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }