private IEnumerable <Cuota> CalcularCuotas(DateTime fechaCupon, double importe, int cantidadCuotas, Tarjeta tarjeta) { var fechaCierreTarjeta = TarjetaFechaCierreRepository.GetFechaDeCierrePorMesYAnio(tarjeta, fechaCupon.Month, fechaCupon.Year); if (fechaCierreTarjeta == null) { var posicionCierreTarjeta = tarjeta.TarjetaOpcionCierre.FirstOrDefault().Posicion; var diaCierreTarjeta = tarjeta.TarjetaOpcionCierre.FirstOrDefault().DiaDeSemana; var fechaCierre = TraerFechaCorte(fechaCupon, posicionCierreTarjeta.CastEnumByName <PosicionCierre>(), diaCierreTarjeta.CastEnumByName <DiaCierre>()); // le asigno la fecha calculada fechaCierreTarjeta = new TarjetaFechaCierre { Tarjeta = tarjeta, FechaCierre = fechaCierre }; tarjeta.TarjetaFechaCierre.Add(fechaCierreTarjeta); } var cuotas = DistribuirCuotas(fechaCupon, importe, cantidadCuotas, fechaCierreTarjeta.FechaCierre); return(cuotas); }
public void GrabarFechaDeCierre(int tarjetaId, int anio, int mes, DateTime fechaCierre) { var fecha = TraerFechaDeCierre(tarjetaId, anio, mes); if (fecha != null) { throw new Exception("Fecha de cierre existente"); } var tarjeta = TarjetaRepository.GetById(tarjetaId); if (tarjeta == null) { throw new Exception("Tarjeta inexistente"); } var tarjetaFechaCierre = new TarjetaFechaCierre { Tarjeta = tarjeta, Anio = anio, Mes = mes, FechaCierre = fechaCierre }; TarjetaFechaCierreRepository.Add(tarjetaFechaCierre); }