예제 #1
0
        public void topicVentasMessage(string message)
        {
            Venta v = new Venta();
            var javaScriptSerializer = new JavaScriptSerializer();
            v = javaScriptSerializer.Deserialize<Venta>(message);

            //Actualizamos la lista para eliminar la venta finalizada
            this.Dispatcher.Invoke((Action)(() =>
            {
                List<Venta> lv = new List<Venta>();
                string jsonVentas = "";
                lvPujas.Items.Clear();
                Ventas serv = new Ventas();
                serv.Url = new Juddi().getServiceUrl("Ventas");
                jsonVentas = serv.getVentas(user.id);
                lv = javaScriptSerializer.Deserialize<List<Venta>>(jsonVentas);
                for (int i = 0; i < lv.Count; i++)
                {
                    DateTime utcDate = DateTime.SpecifyKind(Convert.ToDateTime(lv[i].fecha_F), DateTimeKind.Utc);
                    var localTime = utcDate.ToLocalTime();
                    lvPujas.Items.Add(new ItemPuja { id = lv[i].id, tipo = lv[i].tipo, estado = lv[i].estado, autor = lv[i].autor, tiempoActual = localTime.ToString(), pujaMax = lv[i].precio });
                }
            }));
        }
예제 #2
0
        private void btnAñadirVenta_Click(object sender, RoutedEventArgs e)
        {
            bool validData = true;
            Venta venta = new Venta();
            Auxiliar aux = new Auxiliar();
            string jsonVenta = "";

            //Comprobar que las horas y minutos son valores correctos
            int i = 0;
            bool success = int.TryParse(tbHora.Text, out i);
            if (!success)
            {
                validData = false;
                lbMessage.Foreground = Brushes.Red;
                lbMessage.Content = "El campo 'Hora' debe contener un valor numérico";
            }
            else
            {
                if (int.Parse(tbHora.Text) < 0 || int.Parse(tbHora.Text) > 23)
                {
                    validData = false;
                    lbMessage.Foreground = Brushes.Red;
                    lbMessage.Content = "El campo 'Hora' debe estar comprendido entre 0 y 23";
                }
            }

            success = int.TryParse(tbMinutos.Text, out i);
            if (!success)
            {
                validData = false;
                lbMessage.Foreground = Brushes.Red;
                lbMessage.Content = "El campo 'Minutos' debe contener un valor numérico";
            }
            else
            {
                if (int.Parse(tbMinutos.Text) < 0 || int.Parse(tbMinutos.Text) > 60)
                {
                    validData = false;
                    lbMessage.Foreground = Brushes.Red;
                    lbMessage.Content = "El campo 'Minutos' debe estar comprendido entre 0 y 60";
                }
            }

            DateTime date = new DateTime() ;
            DateTime? dateAux = datePicker.SelectedDate;
            if (dateAux != null)
            {
                date = datePicker.SelectedDate.Value.Date;
                if (validData)
                {
                    date = date.AddHours(int.Parse(tbHora.Text)).AddMinutes(int.Parse(tbMinutos.Text));
                }
            }
            else
            {
                validData = false;
                lbMessage.Foreground = Brushes.Red;
                lbMessage.Content = "Debes escoger una fecha";
            }

            Ventas serv = new Ventas();
            serv.Url = new Juddi().getServiceUrl("Ventas");
            var javaScriptSerializer = new JavaScriptSerializer();

            //Comprobación de campos
            //Año numérico
            success = int.TryParse(tbAño.Text, out i);
            if (!success)
            {
                validData = false;
                lbMessage.Foreground = Brushes.Red;
                lbMessage.Content = "El campo 'Año' debe contener un valor numérico";
            }

            //Fecha posterior a la actual
            int result = DateTime.Compare(date, DateTime.Now);
            if (result < 0)
            {
                validData = false;
                lbMessage.Foreground = Brushes.Red;
                lbMessage.Content = "La fecha indicada ya ha pasado";
            }

            //Precio numérico
            success = int.TryParse(tbPrecio.Text, out i);
            if (!success)
            {
                validData = false;
                lbMessage.Foreground = Brushes.Red;
                lbMessage.Content = "El campo 'Precio' debe contener un valor numérico";
            }

            if (validData)
            {
                int negociado = 0;
                if (cbNegociado.Text == "Automático")
                {
                    negociado = 1;
                }
                else
                {
                    negociado = 2;
                }

                venta.vendedor = user.id;
                venta.tipo = tbTipo.Text;
                venta.autor = tbAutor.Text;
                venta.año = int.Parse(tbAño.Text);
                venta.estado = tbEstado.Text;
                venta.fecha_F = date.ToString();
                venta.precio = int.Parse(tbPrecio.Text);
                venta.negociado = negociado;
                venta.idComprador = 0;

                jsonVenta = javaScriptSerializer.Serialize(venta);
                serv.nuevaVenta(jsonVenta);
                lbMessage.Foreground = Brushes.Green;
                lbMessage.Content = "Venta añadida correctamente";
            }
        }
예제 #3
0
        public void subscriber3_OnMessageReceived(string message)
        {
            Venta v = new Venta();
            var javaScriptSerializer = new JavaScriptSerializer();
            v = javaScriptSerializer.Deserialize<Venta>(message);

            //Informar de venta finalizada y a quien o si ha sido cancelada
            if (v.finalizada == 2) //Cancelada
            {
                this.Dispatcher.Invoke((Action)(() =>
                {
                    txtEvent.Foreground = Brushes.Red;
                    txtEvent.AppendText("La subasta de la obra " + v.tipo + " con ID " + v.id + " ha sido cancelada por el vendedor\r\n");
                    txtEvent.Focus();
                    txtEvent.ScrollToEnd();

                }));
            }
            else if (v.finalizada == 1) //Vendida
            {
                this.Dispatcher.Invoke((Action)(() =>
                {
                    if (v.comprador != null)
                    {
                        txtEvent.Foreground = Brushes.Green;
                        txtEvent.AppendText("La obra " + v.tipo + " con ID " + v.id + " ha sido vendida a " + v.comprador + "\r\n");
                        txtEvent.Focus();
                        txtEvent.ScrollToEnd();
                    }
                    else
                    {
                        txtEvent.Foreground = Brushes.Red;
                        txtEvent.AppendText("La subasta de la obra " + v.tipo + " con ID " + v.id + " ha quedado desierta \r\n");
                        txtEvent.Focus();
                        txtEvent.ScrollToEnd();
                    }
                }));
            }
            else if (v.finalizada == 4) //Vendida (Negociado Manual)
            {
                this.Dispatcher.Invoke((Action)(() =>
                {
                    txtEvent.Foreground = Brushes.Green;
                    txtEvent.AppendText("La obra " + v.tipo + " con ID " + v.id + " ha sido vendida a " + v.comprador + "\r\n");
                    txtEvent.Focus();
                    txtEvent.ScrollToEnd();
                }));
            }

            pj.topicVentasMessage(message);
            nv.obtenerVentas();
            hv.actualizarVentas();
        }