private void BtCancel_Click(object sender, RoutedEventArgs e) { if (CompetitionsToCancel.SelectedItem == null) { MessageBox.Show(Properties.Resources.NothingSelected); return; } var dev = CalcularDevolucion(); var message = Properties.Resources.InscriptionCanceled + " " + dev + "€"; var index = CompetitionsToCancel.SelectedIndex; if (_status[index] != "REGISTERED") { message += "(No se había realizado el pago)"; } MessageBox.Show(message); _enrollService.UpdateInscriptionStatus(_athlete.Dni, _competition.ID, "CANCELED"); _enrollService.UpdateRefund(_athlete.Dni, _competition.ID, dev); //actualizar la tabla GetListCompetition(); }
private void BtActualizar_Click(object sender, RoutedEventArgs e) { if (_file == null || _file.Equals("")) { MessageBox.Show(Properties.Resources.NotSelectedFile); return; } var list = new List <string[]>(); try { list = LeerExtracto(_file); } catch (ArgumentException) { MessageBox.Show(Properties.Resources.EmptyDocument); return; } var extracto = new List <PaymentDto>(); foreach (var s in list) { try { var dto = new PaymentDto { Dni = s[0], Date = DateTime.Parse(s[1]), Amount = double.Parse(s[2]), Id = int.Parse(s[3]) }; extracto.Add(dto); } catch (Exception) { MessageBox.Show(Properties.Resources.InvalidDocument); return; } } var preregistered = _enrollService.SelectOutstandingAthletes(); //comprobaciones var stringBuilder = new StringBuilder(); foreach (var payment in extracto) { var cantidadPagada = payment.Amount; var outstandingInCompetition = false; foreach (var prereg in preregistered) { if (prereg.Dni.Equals(payment.Dni) && prereg.Id == payment.Id) { outstandingInCompetition = true; var time = payment.Date.Subtract(prereg.Date); if (time.Days <= 2 && cantidadPagada >= prereg.Amount) { _enrollService.UpdateInscriptionStatus(prereg.Dni, prereg.Id, "REGISTERED"); stringBuilder.Append("El atleta con dni " + prereg.Dni + " ha sido inscrito en la competición con ID " + prereg.Id); if (cantidadPagada > prereg.Amount) { _enrollService.UpdateRefund(prereg.Dni, prereg.Id, prereg.Amount - cantidadPagada); stringBuilder.Append(". Deben devolversele " + (cantidadPagada - prereg.Amount) + "€ por abonar una cantidad superior al precio"); } stringBuilder.Append(".\n\n"); } else { _enrollService.UpdateInscriptionStatus(prereg.Dni, prereg.Id, "CANCELED"); _enrollService.UpdateRefund(prereg.Dni, prereg.Id, cantidadPagada); stringBuilder.Append("El atleta con dni " + prereg.Dni + " no ha realizado un pago válido para la competición con ID " + prereg.Id + ". Deben devolversele " + cantidadPagada + "€.\n\n"); } } } if (!outstandingInCompetition) { stringBuilder.Append("El atleta con dni " + payment.Dni + " no tenía un pago pendiente en la competición para la que ha realizado el pago. Deben devolversele " + cantidadPagada + "€.\n\n"); } } TxActualizado.Text = stringBuilder.ToString(); }