7.1.1 Creando el modelo Clientes

Para este servicio vamos a crear nuestro modelo para registrar a los Clientes. Agregamos nuestra clase Cliente.cs en nuestra carpeta Model

Cliente.cs
/// <summary>
/// Guarda los clientes
/// </summary>
public class Cliente
{
	/// <summary>
	/// Id del cliente
	/// </summary>
	[Key]
	[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
	public int Id { get; set; }

	/// <summary>
	/// Clave del cliente
	/// </summary>
	[Required(ErrorMessage = "Required")]
	[Range(1, 999999, ErrorMessage = "Range")]
	public int Clave { get; set; }

	/// <summary>
	/// RFC del cliente
	/// </summary>
	[Column(TypeName = "VARCHAR(15)")]
	public string RFC { get; set; }

	/// <summary>
	/// Razón social del cliente 
	/// como esta registrado ante hacienda
	/// </summary>
	[Required(ErrorMessage = "Required")]
	[Column(TypeName = "VARCHAR(250)")]
	public string  RazonSocial { get; set; }
	
	/// <summary>
	/// Nombre comercial del cliente
	/// </summary>
	[Required(ErrorMessage = "Required")]
	[Column(TypeName = "VARCHAR(250)")]
	public string NombreComercial { get; set; }

	/// <summary>
	/// Dirección del cliente
	/// </summary>
	[Required(ErrorMessage = "Required")]
	[Column(TypeName = "VARCHAR(200)")]
	public string Direccion { get; set; }

	/// <summary>
	/// Email de contacto
	/// </summary>
	[Column(TypeName = "VARCHAR(150)")]
	public string Email { get; set; }

	/// <summary>
	/// Teléfono Fijo del cliente
	/// </summary>
	[Column(TypeName = "VARCHAR(20)")]
	public string Telefono { get; set; }

	/// <summary>
	/// Número de celular del cliente
	/// </summary>
	[Column(TypeName = "VARCHAR(20)")]
	public string Celular { get; set; }

	/// <summary>
	/// Sitio Web del cliente
	/// </summary>
	[Column(TypeName = "VARCHAR(20)")]
	public string SitioWeb { get; set; }

	/// <summary>
	/// Indica si el cliente esta activo
	/// </summary>
	[Required(ErrorMessage = "Required")]
	public bool Activo { get; set; }
}

Agregamos la tabla Cliente en nuestra clase CaducaContext

CaducaContext.cs
public class CaducaContext : DbContext
{
    public virtual DbSet<Cliente> Cliente { get; set; }
}

Agregamos la migración con el nombre Clientes

Add-Migration Clientes

Actualizamos la base de datos

Update-database

Si deseas seguir practicando las reglas personalizadas, puedes agregar una regla llamada RequiredWithField en el cual puedes agregar una regla para validar:

Si un campo no esta vacío otro campo es obligatorio como por ejemplo si el cliente tiene RFC, la razón social es obligatoria

Puedes ver la regla terminada en mi github. Su utilización sería así:

[RequiredWithField("RazonSocial")]
public string RFC { get; set; }

Last updated