public async Task <WrapperSimpleTypesDTO> CrearHistorialPagoPersona(HistorialPagosPersonas historialPagoParaCrear) { using (SportsGoEntities context = new SportsGoEntities(false)) { PagosRepository pagosRepo = new PagosRepository(context); bool existePagoEnTramite = await pagosRepo.VerificarQueNoExistaUnPagoEnTramite(historialPagoParaCrear); if (existePagoEnTramite) { throw new InvalidOperationException("Ya existe un pago en tramite, espera por la aprobacion o cancelalo si esta en pendiente!."); } historialPagoParaCrear.FechaPago = DateTime.Now; historialPagoParaCrear.EstadoDelPago = EstadoDeLosPagos.EsperaPago; Monedas monedaDelPais = await pagosRepo.BuscarMonedaDeUnPais(historialPagoParaCrear.CodigoPais); historialPagoParaCrear.CodigoMoneda = monedaDelPais.Consecutivo; PlanesRepository planRepo = new PlanesRepository(context); decimal? precioDelPlan = await planRepo.BuscarPrecioDeUnPlan(historialPagoParaCrear.CodigoPlan); historialPagoParaCrear.Precio = precioDelPlan.Value; historialPagoParaCrear.Paises = null; historialPagoParaCrear.Monedas = null; historialPagoParaCrear.Personas = null; historialPagoParaCrear.Planes = null; historialPagoParaCrear.EstadoPago = null; pagosRepo.CrearHistorialPagoPersona(historialPagoParaCrear); WrapperSimpleTypesDTO wrapperCrearHistorialPagoPersona = new WrapperSimpleTypesDTO(); wrapperCrearHistorialPagoPersona.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperCrearHistorialPagoPersona.NumeroRegistrosAfectados > 0) { wrapperCrearHistorialPagoPersona.Exitoso = true; wrapperCrearHistorialPagoPersona.ConsecutivoCreado = historialPagoParaCrear.Consecutivo; } return(wrapperCrearHistorialPagoPersona); } }