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 }); } })); }
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"; } }
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(); }