public static Emision GenereLaEmision(TipoDeIdentificacion elTipoDeIdentificacion, string laIdentificacion, string elNombre, string elPrimerApellido, string elSegundoApellido) { // Las dependencias con recursos externos string laDireccionDeRevocacion = new RepositorioDeParametros().ObtengaLaDireccionDeRevocacion(); int losAñosDeVigencia = new RepositorioDeParametros().ObtengaLosAñosDeVigencia(); DateTime laFechaActual = DateTime.Now; // 1. Genere la fecha de generacion Emision laEmision = new Emision(); laEmision.FechaDeGeneracion = laFechaActual; // 2. Genere el certificado de autenticacion DatosParaUnCertificadoDigital losDatosDeAutenticacion; if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula) { losDatosDeAutenticacion = new DatosParaUnCertificadoDigitalNacionalDeAutenticacion(); } else { losDatosDeAutenticacion = new DatosParaUnCertificadoDigitalExtranjeroDeAutenticacion(); } losDatosDeAutenticacion.Nombre = elNombre; losDatosDeAutenticacion.Identificacion = laIdentificacion; losDatosDeAutenticacion.PrimerApellido = elPrimerApellido; losDatosDeAutenticacion.SegundoApellido = elSegundoApellido; losDatosDeAutenticacion.FechaActual = laFechaActual; losDatosDeAutenticacion.DireccionDeRevocacion = laDireccionDeRevocacion; losDatosDeAutenticacion.AñosDeVigencia = losAñosDeVigencia; laEmision.CertificadoDeAutenticacion = new CertificadoDigital(losDatosDeAutenticacion); // 3. Genere el certificado de firma DatosParaUnCertificadoDigital losDatosDeFirma; if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula) { losDatosDeFirma = new DatosParaUnCertificadoDigitalNacionalDeFirma(); } else { losDatosDeFirma = new DatosParaUnCertificadoDigitalExtranjeroDeFirma(); } losDatosDeFirma.Nombre = elNombre; losDatosDeFirma.Identificacion = laIdentificacion; losDatosDeFirma.PrimerApellido = elPrimerApellido; losDatosDeFirma.SegundoApellido = elSegundoApellido; losDatosDeFirma.FechaActual = laFechaActual; losDatosDeFirma.DireccionDeRevocacion = laDireccionDeRevocacion; losDatosDeFirma.AñosDeVigencia = losAñosDeVigencia; laEmision.CertificadoDeFirma = new CertificadoDigital(losDatosDeFirma); return(laEmision); }
public static Inversion GenereLaInversion(double elValorFacial, double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion) { //VALIDACION DE LOS DATOS if (elValorFacial <= 100000) { throw new ArgumentException("Error: El valor facial es invalido."); } if (elValorTransadoNeto <= 100000) { throw new ArgumentException("Error: El valor transado neto es invalido."); } if (elPlazoEnDias < 1) { throw new ArgumentException("Error: El plazo en dias es invalido."); } //DEPENDENCIAS CON RECURSOS EXTERNOS DateTime laFechaActual = DateTime.Now; double laTasaDeImpuesto = new RepositorioDeParametros().ObtengaLaTasaDeimpuestoVigente(laFechaActual); int elConsecutivo = new RepositorioDeParametros().ObtengaElConsecutivoParaElCodigoDeReferencia(laFechaActual); //ASIGNACION DE LAS PROPIEDADES DatosParaLaInversion losDatos; switch (elTipoDeInversion) { case TipoDeInversion.ConTratamientoFiscal: losDatos = new DatosParaLaInversionConTratamiento(); break; case TipoDeInversion.SinTratamientoFiscal: losDatos = new DatosParaLaInversionSinTratamiento(); break; case TipoDeInversion.Tratamiento360: losDatos = new DatosParaLaInversion360(); break; default: throw new ArgumentException("Error: tipo de inversion invalido."); } //ASIGNACION DE TODOS LOS DATOS PARA LA INVERSION losDatos.ValorFacial = elValorFacial; losDatos.ValorTransadoNeto = elValorTransadoNeto; losDatos.TasaDeImpuesto = laTasaDeImpuesto; losDatos.FechaActual = laFechaActual; DateTime laFechaDeVencimiento = laFechaActual.AddDays(elPlazoEnDias); losDatos.FechaDeVencimiento = laFechaDeVencimiento; string elConsecutivoComoTexto = elConsecutivo.ToString(); losDatos.ConsecutivoParaElCodigoDeReferencia = elConsecutivoComoTexto; return(new Inversion(losDatos)); }