Ejemplo n.º 1
0
        private static string GetInsertQuery <T>(T pedido) where T : Pedido
        {
            string query = string.Empty;

            if (pedido.GetType() == typeof(Pedido))
            {
                query = "INSERT INTO Pedidos (NombrePedido, Estado, Precio, HorarioPedido, Delivery) values " +
                        "(@nombrePedido, @estadoPedido, @precio, @horarioPedido, @tieneDelivery)";
            }
            else
            {
                query = "INSERT INTO Pedidos values " +
                        "(@nombrePedido, @estadoPedido, @precio, @horarioPedido, @tieneDelivery, @nombreCliente, @localidad, @direccion, @numeroDireccion)";
            }

            command.CommandText = query;
            command.Parameters.AddWithValue("nombrePedido", pedido.NombrePedido);
            command.Parameters.AddWithValue("estadoPedido", pedido.Estado.ToString());
            command.Parameters.AddWithValue("precio", pedido.Precio);
            command.Parameters.AddWithValue("horarioPedido", pedido.HorarioPedido);
            command.Parameters.AddWithValue("tieneDelivery", pedido.TieneDelivery);

            if (pedido is PedidoDelivery)
            {
                PedidoDelivery pedidoDelivery = pedido as PedidoDelivery;

                command.Parameters.AddWithValue("nombreCliente", pedidoDelivery.NombreCliente);
                command.Parameters.AddWithValue("localidad", pedidoDelivery.Localidad);
                command.Parameters.AddWithValue("direccion", pedidoDelivery.Direccion);
                command.Parameters.AddWithValue("numeroDireccion", pedidoDelivery.NumeroDireccion);
            }

            return(query);
        }
        private void pedidoButton_Click(object sender, EventArgs e)
        {
            Pedido pedido;

            float auxPrecio;

            float.TryParse(precioTxtBox.Text, out auxPrecio);

            int auxDireccion;

            int.TryParse(numeroTxtBox.Text, out auxDireccion);

            if (SonDatosInvalidos(auxPrecio, auxDireccion))
            {
                MessageBox.Show(
                    "Fijate que todos los valores estén bien puestos",
                    "Advertencia",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Warning
                    );

                return;
            }

            if (deliveryCheckBox.Checked)
            {
                pedido = new PedidoDelivery(
                    nombreTxtBox.Text,
                    Pedido.EEstado.Preparacion,
                    auxPrecio,
                    true,
                    clienteTxtBox.Text,
                    localidadTxtBox.Text,
                    direccionTxtBox.Text,
                    auxDireccion
                    );

                GuardarTicketDelivery(pedido as PedidoDelivery);
            }
            else
            {
                pedido = new Pedido(
                    nombreTxtBox.Text,
                    Pedido.EEstado.Preparacion,
                    auxPrecio,
                    false
                    );
            }

            if (DataBaseHelper.InsertarPedido(pedido))
            {
                DataBaseHelper.PedidosActuales.Enqueue(DataBaseHelper.GetPedidoPorHorario(pedido.HorarioPedido));
                this.DialogResult = DialogResult.OK;
            }
            else
            {
                this.DialogResult = DialogResult.Cancel;
            }
        }
        private bool GuardarTicketDelivery(PedidoDelivery delivery)
        {
            bool         response = true;
            ArchivoTexto archivo  = new ArchivoTexto();

            try
            {
                archivo.Guardar(delivery.ToString());
            }
            catch (ArchivosException e)
            {
                Console.WriteLine(e.Message);
                response = false;
            }

            return(response);
        }
        public void DevolverTodosLosPedidosCompletados()
        {
            //arrange
            int cantidadPedidosEsperada = 2;
            int cantidadPedidos;

            PedidoDelivery p1 = new PedidoDelivery(
                "Grande de fugazzeta delivery (test)",
                Pedido.EEstado.Completado,
                200f,
                true,
                "Nahuel",
                "Lanus",
                "CalleFalsa",
                123
                );

            PedidoDelivery p2 = new PedidoDelivery(
                "Grande de calabresa delivery (test)",
                Pedido.EEstado.Preparacion,
                200f,
                true,
                "Nahuel",
                "Lanus",
                "CalleFalsa",
                123
                );

            Pedido p3 = new Pedido("Chica de muzza (test)", Pedido.EEstado.Completado, 200f, false);

            //act
            DataBaseHelper.InsertarPedido(p1);
            DataBaseHelper.InsertarPedido(p2);
            DataBaseHelper.InsertarPedido(p3);

            cantidadPedidos = DataBaseHelper.GetPedidosPorEstado(Pedido.EEstado.Completado).Count;

            DataBaseHelper.EliminarPedido(p1.NombrePedido);
            DataBaseHelper.EliminarPedido(p2.NombrePedido);
            DataBaseHelper.EliminarPedido(p3.NombrePedido);

            //assert
            Assert.IsTrue(cantidadPedidosEsperada == cantidadPedidos);
        }
        public void InsertarNuevoPedidoConDeliveryExitosamente()
        {
            //arrange
            string         horaActual = DateTime.Now.HoraActualFormateada();
            PedidoDelivery pedido     = new PedidoDelivery(
                "Grande de muzza delivery (test)",
                Pedido.EEstado.Preparacion,
                200f,
                true,
                "Santiago",
                "Banfield",
                "CalleFalsa",
                123
                );

            //act
            DataBaseHelper.InsertarPedido(pedido);
            string horarioPedidoInsertado = DataBaseHelper.GetPedidoPorHorario(horaActual).HorarioPedido;

            DataBaseHelper.EliminarPedido(pedido.NombrePedido);

            //assert
            Assert.AreEqual(horaActual, horarioPedidoInsertado);
        }
Ejemplo n.º 6
0
        public static Pedido GetPedidoPorHorario(string horario)
        {
            Pedido p = null;

            try
            {
                string query = "SELECT * FROM Pedidos WHERE HorarioPedido = @horarioPedido";
                command.Parameters.Clear();
                command.Parameters.AddWithValue("horarioPedido", horario);

                sqlConnection.Open();

                command.CommandText = query;
                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    int            id            = (int)reader["Id"];
                    string         nombrePedido  = (string)reader["NombrePedido"];
                    Pedido.EEstado estado        = (Pedido.EEstado)Enum.Parse(typeof(Pedido.EEstado), (string)reader["Estado"]);
                    float          precio        = (float)(double)reader["Precio"];
                    string         horarioPedido = (string)reader["HorarioPedido"];
                    bool           tieneDelivery = reader.GetBoolean(reader.GetOrdinal("Delivery"));

                    if (tieneDelivery)
                    {
                        //agrego los campos extra que tiene un pedido con delivery
                        string nombreCliente   = (string)reader["NombreCliente"];
                        string localidad       = (string)reader["Localidad"];
                        string direccion       = (string)reader["Direccion"];
                        int    numeroDireccion = (int)reader["NumeroDireccion"];

                        p = new PedidoDelivery(
                            id,
                            nombrePedido,
                            estado,
                            precio,
                            tieneDelivery,
                            horarioPedido,
                            nombreCliente,
                            localidad,
                            direccion,
                            numeroDireccion
                            );
                    }
                    else
                    {
                        p = new Pedido(id, nombrePedido, estado, precio, horarioPedido, tieneDelivery);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                if (!(sqlConnection is null) && sqlConnection.State == System.Data.ConnectionState.Open)
                {
                    sqlConnection.Close();
                }
            }

            return(p);
        }