public class Cliente
{
#region Campos
private String _nombre;
private DateTime _fechaNacimiento;
private int _edad;
//private DateTime _fechaMin = new DateTime(1900, 01, 01);
#endregion
#region Propiedades
// No seteamos _edad en Edad ya que depende de la fecha de nacimiento (nosotros debemos setearla por programa )
public int Edad
{
get { return _edad; }
/*set
{
if ((DateTime.Now.Year - FechaNacimiento.Year) < 18 )
{
throw new ArgumentOutOfRangeException("Edad", "La edad debe ser mayor o igual a 18");
}
else
{
_edad = (DateTime.Now.Year - FechaNacimiento.Year);
}
}*/
}
public DateTime FechaNacimiento
{
get
{
return _fechaNacimiento;
}
set
{
if (value < new DateTime(1900, 01, 01) || value > DateTime.Today)
{
throw new ArgumentOutOfRangeException("Fecha Nacimiento", "La fecha debe ser posterior al 01-01-1900");
}
else
{
_fechaNacimiento = value;
if (DateTime.Now.Year - FechaNacimiento.Year >= 18)
{
_edad = (DateTime.Now.Year - FechaNacimiento.Year);
}
else
{
throw new ArgumentOutOfRangeException("Edad", "no cumple con la edad mínima");
}
}
}
}
public String Nombre
{
get { return _nombre; }
set
{
if (!string.IsNullOrEmpty(value))
{
_nombre = value;
}
else
{
throw new ArgumentNullException(" El Nombre no puede estar vacio");
}
}
}
public Sexo Sexo
{
get;
set;
}
#endregion
#region Constructor
public Cliente()
{
_nombre = string.Empty;
_edad = 18;
FechaNacimiento = new DateTime(1990,01,01);
Sexo = Sexo.NoIngresado;
}
#endregion
}
}
//////////////////////77
public class Cuenta
{
#region Campos
private static int _contadorAhorro=0, _contadorCorriente=0, _contadorVista=0;
private DateTime _apertura = new DateTime(1980,01,01);
//private DateTime _fechaMin = new DateTime(01 - 01 - 1980);
private String _identidficador;
private int _saldoInicial;
private double _costoMantencion;
#endregion
#region Propiedades
public DateTime Apertura
{
get { return _apertura;}
set { _apertura = value; }
}
public String Identificador
{
get;
}
public int SaldoInicial
{
get { return _saldoInicial; }
set { if (value <= 0)
{
throw new ArgumentOutOfRangeException("Saldo Inicial", "Debe ser mayor a 0");
}
else
{
_saldoInicial = value;
}
}
}
public int CostoMantencion
{
get;
set;
}
public TipoCuenta TipoCuentas
{
get;
set;
}
public Cliente Clientito
{
get;
set;
}
#endregion
#region Constructor
public Cuenta()
{
TipoCuentas = TipoCuenta.NoIngresado;
Apertura = _apertura;
Identificador = string.Empty;
SaldoInicial = 1;
CostoMantencion = 0;
Clientito = new Cliente();
}
#endregion
#region Metodos
public int CalcularCostoMantencion()
{
_costoMantencion = 0.01;
int valor = 0;
switch (TipoCuentas)
{
case TipoCuenta.CuentaCorriente:
_costoMantencion += 0.03;
break;
case TipoCuenta.CuentaVista:
_costoMantencion += 0.02;
break;
case TipoCuenta.CuentaAhorro:
_costoMantencion += 0.01;
break;
}
if (Clientito.Edad >= 18 & Clientito.Edad <= 35)
{
_costoMantencion += 0.03;
}
else if (Clientito.Edad > 35 & Clientito.Edad < 45)
{
_costoMantencion += 0.02;
}
else if (Clientito.Edad > 45)
{
_costoMantencion += 0.01;
}
valor = (int)(23000 * _costoMantencion);
return valor;
}
public StringBuilder imprimir()
{
StringBuilder salida = new StringBuilder();
salida.AppendFormat("*********Información Cliente*********").AppendLine()
.AppendFormat("Nombre: {0}", Clientito.Nombre).AppendLine()
.AppendFormat("Fecha Nacimiento: {0}", Clientito.FechaNacimiento.ToShortDateString()).AppendLine()
.AppendFormat("Edad: {0}", Clientito.Edad).AppendLine()
.AppendFormat("Genero: {0}", Clientito.Sexo).AppendLine()
.AppendFormat("***************CUENTA**************").AppendLine()
.AppendFormat("Identificador Cuenta: {0}",calcularIdentificador()).AppendLine()
.AppendFormat("Tipo Cuenta: {0}", TipoCuentas).AppendLine()
.AppendFormat("Fecha Apertura: {0}", Apertura.ToShortDateString()).AppendLine()
.AppendFormat("Saldo Inicial: {0}", SaldoInicial.ToString("C0")).AppendLine()
.AppendFormat("Costo Mantención: {0}", CalcularCostoMantencion().ToString("C0"));
return salida;
}
public string calcularIdentificador()
{
if (TipoCuentas == TipoCuenta.CuentaAhorro)
{
_contadorAhorro++;
_identidficador = "CTA-AHO-" +_contadorAhorro.ToString();
}
else if(TipoCuentas==TipoCuenta.CuentaCorriente)
{
_contadorCorriente++;
_identidficador = "CTA-CTE-" +_contadorCorriente.ToString() ;
}
else if (TipoCuentas==TipoCuenta.CuentaVista)
{
_contadorVista++;
_identidficador = "CTA-VIS-" + _contadorVista.ToString() ;
}
return _identidficador;
}
#endregion
}
}
///////////////////////////////////////////////77
public enum TipoCuenta
{
NoIngresado,
CuentaAhorro ,
CuentaVista,
CuentaCorriente
};
public enum Sexo
{
NoIngresado,
Masculino,
Femenino
};
////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Bancaria;
namespace Ventana
{
/// <summary>
/// Lógica de interacción para MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public Cuenta[] cuentas = new Cuenta[0];
public MainWindow()
{
InitializeComponent();
// Asignar los valores del Enum al comboBox
cmbTipoCuenta.ItemsSource = Enum.GetValues(typeof(TipoCuenta));
// Inicializar el valor por default
cmbTipoCuenta.SelectedIndex = 0;
datosDePueba();
}
#region BotonAgregar
private void button_Click(object sender, RoutedEventArgs e)
{
try
{
Cuenta cta = new Cuenta();
cta.Clientito.Nombre = txtNombre.Text.Trim();
cta.Clientito.FechaNacimiento = dpFechaNacimiento.SelectedDate.Value;
// Para el genero !
#region IngresarGenero
if (!(bool)rbtnFemenino.IsChecked && !(bool)rbtnMasculino.IsChecked)
{
cta.Clientito.Sexo = Sexo.NoIngresado;
}
else
{
cta.Clientito.Sexo = (bool)rbtnFemenino.IsChecked ? Sexo.Femenino : Sexo.Masculino;
}
#endregion
cta.SaldoInicial = int.Parse(txtSaldoInicial.Text.Trim());
cta.TipoCuentas = (TipoCuenta)cmbTipoCuenta.SelectedValue;
cta.Apertura = dpFechaApertura.SelectedDate.Value;
Array.Resize(ref cuentas, cuentas.Length + 1);
cuentas[cuentas.Length - 1] = cta;
txtSalida.Items.Add(cta.imprimir().ToString());
limpiar();
MessageBox.Show(string.Format("Se ha guardado el Visitante {0}", cta.Clientito.Nombre));
}
catch (ArgumentOutOfRangeException ex)
{
MessageBox.Show(ex.Message);
}
catch(ArgumentNullException ex)
{
MessageBox.Show(ex.Message);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
private void datosDePueba()
{
txtNombre.Text = "Juan";
dpFechaNacimiento.SelectedDate = DateTime.Today;
rbtnFemenino.IsChecked = false;
rbtnMasculino.IsChecked = true;
txtSaldoInicial.Text = "1000";
cmbTipoCuenta.SelectedIndex = 2;
dpFechaApertura.SelectedDate = DateTime.Today;
}
private void limpiar()
{
txtNombre.Clear();
dpFechaNacimiento.SelectedDate = DateTime.Today;
rbtnFemenino.IsChecked = false;
rbtnMasculino.IsChecked = false;
txtSaldoInicial.Clear();
cmbTipoCuenta.SelectedIndex = 0;
dpFechaApertura.SelectedDate = DateTime.Today;
}
}
}
Comentarios sobre la versión: 1.0 (3)
No es vb
vb net una cosa y c# es otra