Está en la página 1de 20

Creación de la base de datos utilizando codeFirst

1- Creamos la entidad común de todas las demás.


public class BaseEntity //Clase comun de la cual van a heredar la demas entidades
{
//Propiedades comunes que tendran todas las demas entidades
public int ID { get; set; }
public string Estatus { get; set; }
public int Borrado { get; set; }
public DateTime FechaRegistro { get; set; }
public DateTime FechaModificacion { get; set; }
}

2- Creamos las demás entidades del programa


public class Cliente : BaseEntity //Clase cliente que hereda las propiedades comunes
de BaseEntity
{
//Propiedades unicas de la entidad Cliente que se volverán columnas den la
base de datos
public string Nombre { get; set; }
public string Apellido { get; set; }
public string Direccion { get; set; }
public string Telefono { get; set; }
public string Correo { get; set; }
public string Cedula { get; set; }

//Icolecction para indicar una relación entre la entidad Cliente y la entidad


Venta.
public virtual ICollection<Venta> Ventas { get; set; }
}

public class Marca : BaseEntity //Clase Marca que hereda las propiedades comunes de
BaseEntity
{
//Propiedades unicas de la entidad Marca que se volveran columnas den la base
de datos

public string Nombre { get; set; }

//Icolecction para indicar una relacion entre la entidad Marca y la entidad


Modelo.
public virtual ICollection<Modelo> Modelos { get; set; }
}

public class Modelo : BaseEntity //Clase Modelo que hereda las propiedades comunes de
BaseEntity
{
//Propiedades unicas de la entidad Modelo que se volveran columnas den la base
de datos
public int MarcaID { get; set; }
public virtual Marca Marca { get; set; }
public string Nombre { get; set; }

//Icolecction para indicar una relacion entre la entidad Modelo y la entidad


Vehiculo.
public ICollection<Vehiculo> Vehiculos { get; set; } //cambio no tiene muchos
vehiculos
}

public class TipoDeCombustible : BaseEntity //Clase TipoDeCombustible que hereda las


propiedades comunes de BaseEntity
{
//Propiedades unicas de la entidad TipoDeCombustible que se volveran columnas
den la base de datos
public string Nombre { get; set; }

//Icolecction para indicar una relacion entre la entidad TipoDeCombustible y


la entidad Vehiculo.
public virtual ICollection<Vehiculo> Vehiculos { get; set; }
}

public class TipoDeTransmision : BaseEntity //Clase TipoDeTransmision que hereda las


propiedades comunes de BaseEntity
{
//Propiedades unicas de la entidad TipoDeTransmision que se volveran columnas
den la base de datos
public string Nombre { get; set; }

//Icolecction para indicar una relacion entre la entidad TipoDeTransmision y


la entidad Vehiculo.
public virtual ICollection<Vehiculo> Vehiculos { get; set; }
}

public class Vehiculo : BaseEntity //Clase Vehiculo que hereda las propiedades comunes
de BaseEntity
{
//Propiedades unicas de la entidad Vehiculo que se volveran columnas den la
base de datos
public int TipoDeTransmisionID { get; set; }
public virtual TipoDeTransmision TipoDeTransmision { get; set; }
public int TipoDeCombustibleID { get; set; }
public virtual TipoDeCombustible TipoDeCombustible { get; set; }
public int ModeloID { get; set; }
public virtual Modelo Modelo { get; set; }
public string Chasis { get; set; }
public string Placa { get; set; }
public string Year { get; set; }
public string Color { get; set; }
public string Cilindraje { get; set; }
public string KilometrosTablero { get; set; }
public int CantidadDePuertas { get; set; }
public decimal Precio { get; set; }
//Icolecction para indicar una relacion entre la entidad Vehiculo y la entidad
Ventas.
public virtual ICollection<Venta> Ventas { get; set; }
}

public class Venta : BaseEntity //Clase Venta que hereda las propiedades comunes de
BaseEntity
{
//Propiedades únicas de la entidad Venta que se volveran columnas den la base
de datos
public int ClienteID { get; set; }
public virtual Cliente Cliente { get; set; }
public int VehiculoID { get; set; }
public virtual Vehiculo Vehiculo { get; set; }
public string MetodoDePago { get; set; }
public decimal Precio { get; set; }
}

3- Luego de creadas las entidades, creamos en DBContext y el FluentAPI.

public class MyAppDbContext : DbContext //Clase para dar formato a la base de datos y
heredamos de DbContext
{
public MyAppDbContext() //Constructor de la clase y con el base le pasamos el
nombre del conecction string.
: base("name=lisbeth")
{

//Dbset, para indicar que estas clases sera una entidad(table) en la base de
datos.
public DbSet<Cliente> Clientes { get; set; }
public DbSet<Marca> Marcas { get; set; }
public DbSet<Modelo> Modelos { get; set; }
public DbSet<TipoDeCombustible> TipoDeCombustibles { get; set; }
public DbSet<TipoDeTransmision> TipoDeTransmisiones { get; set; }
public DbSet<Vehiculo> Vehiculos { get; set; }
public DbSet<Venta> Ventas { get; set; }

//Metodo para hacer el fluentAPI y convertir las propiedades de la clase de c#


a SQL

protected override void OnModelCreating(DbModelBuilder modelBuilder)


{
//Region Cliente

//Indicamos que la la clase cliente se llamara Cliente como tabla en la


base de datos.
modelBuilder.Entity<Cliente>().ToTable("Cliente").HasKey(k => k.ID);

//Indicamos que la propiedad ID de la clase se llamara ClienteID en la


base de datos.
modelBuilder.Entity<Cliente>().Property(p =>
p.ID).HasColumnName("ClienteID");

//Indicamos que la propiedad es de tipo varchar con un maximo de 100 y no


permite null
modelBuilder.Entity<Cliente>().Property(P =>
P.Nombre).HasMaxLength(100).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Cliente>().Property(P =>
P.Apellido).HasMaxLength(100).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Cliente>().Property(P =>
P.Direccion).HasMaxLength(500).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Cliente>().Property(P =>
P.Telefono).HasMaxLength(20).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Cliente>().Property(P =>
P.Correo).HasMaxLength(100).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Cliente>().Property(P =>
P.Cedula).HasMaxLength(11).HasColumnType("varchar").IsRequired();

//Comunes
modelBuilder.Entity<Cliente>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<Cliente>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<Cliente>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<Cliente>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

//Region Marca

//Indicamos que la la clase marca se llamara Marca como tabla en la base


de datos.
modelBuilder.Entity<Marca>().ToTable("Marca").HasKey(k => k.ID);

//Indicamos que la propiedad ID de la clase se llamara MarcaID en la base


de datos.
modelBuilder.Entity<Marca>().Property(p => p.ID).HasColumnName("MarcaID");

//Indicamos que la propiedad es de tipo varchar con un maximo de 100 y no


permite null
modelBuilder.Entity<Marca>().Property(P =>
P.Nombre).HasMaxLength(100).HasColumnType("varchar").IsRequired();

//Comunes
modelBuilder.Entity<Marca>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<Marca>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<Marca>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<Marca>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

//Region Modelo

//Indicamos que la la clase Modelo se llamara Modelo como tabla en la base


de datos.
modelBuilder.Entity<Modelo>().ToTable("Modelo").HasKey(k => k.ID);

//Indicamos que la propiedad ID de la clase se llamara ModeloID en la base


de datos.
modelBuilder.Entity<Modelo>().Property(p =>
p.ID).HasColumnName("ModeloID");

//Indicamos que la propiedad es de tipo int y no permite null


modelBuilder.Entity<Modelo>().Property(P =>
P.MarcaID).HasColumnType("int").IsRequired();
modelBuilder.Entity<Modelo>().Property(P =>
P.Nombre).HasMaxLength(100).HasColumnType("varchar").IsRequired();

//Comunes
modelBuilder.Entity<Modelo>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<Modelo>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<Modelo>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<Modelo>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

//Region TipoDeCombustible

//Indicamos que la la clase TipoDeCombustible se llamara TipoDeCombustible


como tabla en la base de datos.

modelBuilder.Entity<TipoDeCombustible>().ToTable("TipoDeCombustible").HasKey(k =>
k.ID);

//Indicamos que la propiedad ID de la clase se llamara TipoDeCombustibleID


en la base de datos.
modelBuilder.Entity<TipoDeCombustible>().Property(p =>
p.ID).HasColumnName("TipoDeCombustibleID");

//Indicamos que la propiedad es de tipo varchar con un maximo de 20 y no


permite null
modelBuilder.Entity<TipoDeCombustible>().Property(P =>
P.Nombre).HasMaxLength(20).HasColumnType("varchar").IsRequired();

//Comunes
modelBuilder.Entity<TipoDeCombustible>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<TipoDeCombustible>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<TipoDeCombustible>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<TipoDeCombustible>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

//Region TipoDeTransmision

//Indicamos que la la clase TipoDeTransmision se llamara TipoDeTransmision


como tabla en la base de datos.

modelBuilder.Entity<TipoDeTransmision>().ToTable("TipoDeTransmision").HasKey(k =>
k.ID);

//Indicamos que la propiedad ID de la clase se llamara TipoDeTransmisionID


en la base de datos.
modelBuilder.Entity<TipoDeTransmision>().Property(p =>
p.ID).HasColumnName("TipoDeTransmisionID");

//Indicamos que la propiedad es de tipo varchar con un maximo de 100 y no


permite null
modelBuilder.Entity<TipoDeTransmision>().Property(P =>
P.Nombre).HasMaxLength(100).HasColumnType("varchar").IsRequired();

//Comunes
modelBuilder.Entity<TipoDeTransmision>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<TipoDeTransmision>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<TipoDeTransmision>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<TipoDeTransmision>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

//Region Vehiculo

//Indicamos que la la clase Vehiculo se llamara Vehiculo como tabla en la


base de datos.
modelBuilder.Entity<Vehiculo>().ToTable("Vehiculo").HasKey(k => k.ID);

//Indicamos que la propiedad ID de la clase se llamara VehiculoID en la


base de datos.
modelBuilder.Entity<Vehiculo>().Property(p =>
p.ID).HasColumnName("VehiculoID");

//Indicamos que la propiedad es de tipo int y no permite null


modelBuilder.Entity<Vehiculo>().Property(P =>
P.TipoDeTransmisionID).HasColumnType("int").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.TipoDeCombustibleID).HasColumnType("int").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.ModeloID).HasColumnType("int").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Chasis).HasMaxLength(100).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Placa).HasMaxLength(20).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Year).HasMaxLength(4).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Color).HasMaxLength(20).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Cilindraje).HasMaxLength(10).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.KilometrosTablero).HasMaxLength(50).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.CantidadDePuertas).HasColumnType("int").IsRequired();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Precio).HasColumnType("decimal").IsRequired();

//Comunes
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<Vehiculo>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

//Region Venta

//Indicamos que la la clase Venta se llamara Venta como tabla en la base


de datos.
modelBuilder.Entity<Venta>().ToTable("Venta").HasKey(k => k.ID);
//Indicamos que la propiedad ID de la clase se llamara VentaID en la base
de datos.
modelBuilder.Entity<Venta>().Property(p => p.ID).HasColumnName("VentaID");

//Indicamos que la propiedad es de tipo int y no permite null


modelBuilder.Entity<Venta>().Property(P =>
P.ClienteID).HasColumnType("int").IsRequired();
modelBuilder.Entity<Venta>().Property(P =>
P.VehiculoID).HasColumnType("int").IsRequired();
modelBuilder.Entity<Venta>().Property(P =>
P.MetodoDePago).HasMaxLength(50).HasColumnType("varchar").IsRequired();
modelBuilder.Entity<Venta>().Property(P =>
P.Precio).HasColumnType("decimal").IsRequired();

//Comunes
modelBuilder.Entity<Venta>().Property(P =>
P.Estatus).HasMaxLength(2).HasColumnType("varchar").IsOptional();
modelBuilder.Entity<Venta>().Property(P =>
P.Borrado).HasColumnType("int").IsOptional();
modelBuilder.Entity<Venta>().Property(P =>
P.FechaRegistro).HasColumnType("DateTime").IsOptional();
modelBuilder.Entity<Venta>().Property(P =>
P.FechaModificacion).HasColumnType("DateTime").IsOptional();

4– Creamos la interface Generica para el repositorio


genérico.
interface IGenericRepository<T> //Interfaz de repositorio generico
{
T Create(T model); //Para crear un registro en la base de datos
List<T> GetAll(); //Para hacer un select * en la base de datos
T FindById(int id); //Para hacer un select por ID
OperationResult Update(T model); //Para hacer un update en la base de datos
OperationResult SoftDelete(T model); //Para hacer un softDelete en la base de
datos
}

5- Creamos el repositorio genérico que hereda de la interfaz

public class GenericRepository<T> : IGenericRepository<T> where T : BaseEntity


{
private MyAppDbContext dbContext;
private DbSet<T> _set;

public GenericRepository() //Constructor de la clase para inicializar las


variables
{
dbContext = new MyAppDbContext();
_set = dbContext.Set<T>();
}
public T Create(T model) //Metodo para crear un registro en la base de datos,
recibe un modelo
{
_set.Add(model);
dbContext.SaveChanges();
return model;
}

public T FindById(int id) //Metodo para buscar en la base de datos basado en


un ID.
{
return _set.FirstOrDefault(p => p.ID == id);
}

public List<T> GetAll() //Metodo para buscar todos los registros en la base de
datos donde borrado sea 0 y estatus sea A
{
return _set.Where(p => p.Borrado == 0 & p.Estatus == "A").ToList();
}

public OperationResult SoftDelete(T model) //Metodo para hacer un softdelete


colocando el borrado en 1 y el estatus en I
{
dbContext.Entry(model).State = EntityState.Modified;
model.Borrado = 1;
model.Estatus = "I";
dbContext.SaveChanges();

return new OperationResult() { Success = true };


}

public OperationResult Update(T model) //Metodo update para modificar un


registro en la base de datos.
{
dbContext.Entry(model).State = EntityState.Modified;
dbContext.SaveChanges();

return new OperationResult() { Success = true };


}

6- Creamos ahora las pantallas (Formularios)


6.1-Pantalla Principal
6.1.1- Es un botón que lleva a la pantalla Cliente y cuando se hace clic
private void BtnClientes_Click(object sender, EventArgs e)
{
frmClientes frmClientes = new frmClientes(); //inicializamos un
objeto de la clase frmClientes
this.Hide(); //Ocultamos la pantalla principal
frmClientes.ShowDialog(); //Llamamos el metodo ShowDialog del
objeto de la clase frmCliente para que nos presente la pantalla de clientes
}

6.1.2- Es un botón que lleva a la pantalla donde están las acciones


para realizar con el auto
private void BtnAutos_Click(object sender, EventArgs e)
{
frmAutos frmAutos = new frmAutos(); //inicializamos un objeto de
la clase frmAutos
this.Hide(); //Ocultamos la pantalla principal
frmAutos.ShowDialog(); //Llamamos el metodo ShowDialog del objeto
de la clase frmAutos para que nos presente la pantalla de Autos
}

6.1.3- Es un botón que lleva a la pantalla donde se realizan las


ventas.
private void BtnVentas_Click(object sender, EventArgs e)
{
frmVentas frmVentas = new frmVentas(); //inicializamos un objeto
de la clase frmVentas
this.Hide(); //Ocultamos la pantalla principal
frmVentas.ShowDialog(); //Llamamos el metodo ShowDialog del objeto
de la clase frmVentas para que nos presente la pantalla de Ventas
}

6.2- Pantalla de Clientes

6.2.1 – método para actualizar el datagridview que es donde se


muestra la información que viene de la base de datos

private void ActualizacionDelDGV()


{
//llenamos el DataGridView con la información que viene de la base
de datos. Hacemos uso de la propiedad select para filtrar y que solo se muestren las
columnas que queremos
dgvCliente.DataSource = _clienteRepo.GetAll().Select(x => new
{
ID = x.ID,
Nombre = x.Nombre,
Apellido = x.Apellido,
Direccion = x.Direccion,
Telefono = x.Telefono,
Correo = x.Correo,
Cedula = x.Cedula,
Estatus = x.Estatus,
Borrado = x.Borrado,
FechaRegistro = x.FechaRegistro,
FechaModificacion = x.FechaModificacion,

}).ToList();
}

6.2.2-Metodo para llenar el los textbox con la información de la celda


que se haga clic en el datagridview
private void dgvCliente_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//Hacemos que los TextBox se llenen con la informacion en el
dataGridView
txtapellido.Text =
dgvCliente.CurrentRow.Cells["Apellido"].Value.ToString();
txtcedula.Text =
dgvCliente.CurrentRow.Cells["Cedula"].Value.ToString();
txtcorreo.Text =
dgvCliente.CurrentRow.Cells["Correo"].Value.ToString();
txtdireccion.Text =
dgvCliente.CurrentRow.Cells["Direccion"].Value.ToString();
txtnombre.Text =
dgvCliente.CurrentRow.Cells["Nombre"].Value.ToString();
txttelefono.Text =
dgvCliente.CurrentRow.Cells["Telefono"].Value.ToString();
}

6.2.3- Botón agregar


private void Btnagregar_Click_1(object sender, EventArgs e)
{
//Llamamos el Generic Repositorory
GenericRepository<Cliente> _clienteRepo = new
GenericRepository<Cliente>();
Cliente clienteNuevo = new Cliente(); //Creamos un objeto de la
clase Cliente

//Llenamos las propiedades de la clase con la informacion que nos


da el usuario.
clienteNuevo.Nombre = txtnombre.Text;
clienteNuevo.Apellido = txtapellido.Text;
clienteNuevo.Direccion = txtdireccion.Text;
clienteNuevo.Telefono = txttelefono.Text;
clienteNuevo.Correo = txtcorreo.Text;
clienteNuevo.Cedula = txtcedula.Text;
clienteNuevo.Estatus = "A";
clienteNuevo.Borrado = 0;
clienteNuevo.FechaRegistro = DateTime.Now;
clienteNuevo.FechaModificacion = DateTime.Now;

_clienteRepo.Create(clienteNuevo); //Llamamos el metodo Create y


le pasamos el objeto de la clase cliente

//MessaBox para indicar que se agrego el cliente.


MessageBox.Show("El Cliente fue Agregado a la base de Datos",
"Clientes");

ActualizacionDelDGV(); //Actualizamos el DataGridView

//Hacemos que se limpien los textbox


txtnombre.Text = "";
txtapellido.Text = "";
txtcedula.Text = "";
txtcorreo.Text = "";
txtdireccion.Text = "";
txttelefono.Text = "";
}
6.2.4- Botón actualizar
private void Btnactualizar_Click_1(object sender, EventArgs e)
{
//Llamamos el Generic Repositorory
GenericRepository<Cliente> _clienteRepo = new
GenericRepository<Cliente>();
var usuarioActualizar =
_clienteRepo.FindById(Convert.ToInt32(dgvCliente.CurrentRow.Cells["ID"].Value));
//llamamos el metodo FindById indicandole el ID, para que nos traiga el modelo a
actualizar

//Modificamos en el formulario lo que queremos cambiar.


usuarioActualizar.Nombre = txtnombre.Text;
usuarioActualizar.Apellido = txtapellido.Text;
usuarioActualizar.Direccion = txtdireccion.Text;
usuarioActualizar.Telefono = txttelefono.Text;
usuarioActualizar.Correo = txtcorreo.Text;
usuarioActualizar.Cedula = txtcedula.Text;
usuarioActualizar.FechaModificacion = DateTime.Now;

//llamamos el metodo update y le pasamos el modelo


_clienteRepo.Update(usuarioActualizar);

//MessaBox para indicar que se actualizo el cliente.


MessageBox.Show("El Cliente fue Actualizado en la base de Datos",
"Clientes");

//Hacemos que se limpien los textbox


txtnombre.Text = "";
txtapellido.Text = "";
txtcedula.Text = "";
txtcorreo.Text = "";
txtdireccion.Text = "";
txttelefono.Text = "";

ActualizacionDelDGV(); //Actualizamos el DataGridView


}

6.2.5- Boton Borrar


private void Btnborrar_Click_1(object sender, EventArgs e)
{
//Llamamos el Generic Repositorory
GenericRepository<Cliente> _clienteRepo = new
GenericRepository<Cliente>();
var usuarioBorrar =
_clienteRepo.FindById(Convert.ToInt32(dgvCliente.CurrentRow.Cells["ID"].Value));
//llamamos el metodo FindById indicandole el ID, para que nos traiga el modelo a
actualizar

//llamamos el metodo softDelete y le pasamos el modelo


_clienteRepo.SoftDelete(usuarioBorrar);

//MessaBox para indicar que se borro el cliente.


MessageBox.Show("El Cliente fue Borrado en la base de Datos",
"Clientes");

ActualizacionDelDGV(); //Actualizamos el DataGridView


//Hacemos que se limpien los textbox
txtnombre.Text = "";
txtapellido.Text = "";
txtcedula.Text = "";
txtcorreo.Text = "";
txtdireccion.Text = "";
txttelefono.Text = "";
}

6.2.6- Boton Volver


private void btnvolver_Click(object sender, EventArgs e)
{
frmPpricipal frmPpricipal = new frmPpricipal(); //inicializamos un
objeto de la clase frmPpricipal
this.Hide(); //Ocultamos la pantalla De Ventas
frmPpricipal.ShowDialog(); //Llamamos el metodo ShowDialog del
objeto de la clase frmPpricipal para que nos presente la pantalla de Principal
}

6.2.7– Botón Buscar


private void BtnBuscar_Click(object sender, EventArgs e)
{
dgvCliente.DataSource = _clienteRepo.GetAll().Where(x =>
x.Cedula.ToString().Contains(txtbuscarid.Text)).ToList(); //llenamos el datagridview
con la informacion del usuario, se filtra por la cedula

6.3- Pantalla de Autos


6.3.1-Boton que llama la pantalla de los combustibles
private void Btncombustible_Click(object sender, EventArgs e)
{
frmCombustible frmCombustible = new frmCombustible();
this.Hide();
frmCombustible.ShowDialog();
}

6.3.2- Boton que llama la pantalla de tansmision


private void Btntransmision_Click(object sender, EventArgs e)
{
frmTransmision frmTransmision = new frmTransmision();
this.Hide();
frmTransmision.ShowDialog();
}

6.3.3- Boton que llama la pantalla de Marca


private void Btnmarca_Click(object sender, EventArgs e)
{
frmMarca frmMarca = new frmMarca();
this.Hide();
frmMarca.ShowDialog();
}

6.3.4- Boton que llama la pantalla de Modelos


private void Btnmodelo_Click(object sender, EventArgs e)
{
frmModelo frmModelo = new frmModelo();
this.Hide();
frmModelo.ShowDialog();
}

6.3.5- Boton que llama la pantalla de Vehiculos


private void Btnvehiculos_Click(object sender, EventArgs e)
{
frmVehiculos frmVehiculos = new frmVehiculos();
this.Hide();
frmVehiculos.ShowDialog();

6.3.6- Boton que llama la pantalla principal


private void Btnvolver_Click(object sender, EventArgs e)
{
frmPpricipal frmPpricipal = new frmPpricipal();
this.Hide();
frmPpricipal.ShowDialog();
}

6.3.1.1- Pantalla De las Combustibles

6.3.1.1.1- Método para actualizar el datagridview


private void ActualizacionDelDGV()
{
//Llamamos el Generic Repositorory

dgvCombustible.DataSource = _combustibleRepo.GetAll().Select(x =>


new
{
ID = x.ID,
Nombre = x.Nombre,
Estatus = x.Estatus,
Borrado = x.Borrado,
FechaRegistro = x.FechaRegistro,
FechaModificacion = x.FechaModificacion,

}).ToList();
}

6.3.1.1.2- Metodo para registrar


private void Btnregistrar_Click(object sender, EventArgs e)
{
//Llamamos el Generic Repositorory
GenericRepository<TipoDeCombustible> _combustibleRepo = new
GenericRepository<TipoDeCombustible>();
TipoDeCombustible combustibleNuevo = new TipoDeCombustible();
//Creamos un objeto de la clase TipoDeCombustible

//Llenamos la propiedades de la clase con la informacion que nos


da el usuario.
combustibleNuevo.Nombre = txtnombre.Text;
combustibleNuevo.Estatus = "A";
combustibleNuevo.Borrado = 0;
combustibleNuevo.FechaRegistro = DateTime.Now;
combustibleNuevo.FechaModificacion = DateTime.Now;

_combustibleRepo.Create(combustibleNuevo); //Llamamos el metodo


Create y le pasamos el objeto de la clase TipoDeCombustible

//MessaBox para indicar que se agrego el TipoDeCombustible.


MessageBox.Show("El Combustible fue Agregada a la base de Datos",
"Combustible");

ActualizacionDelDGV(); //Actualizamos el DataGridView


txtnombre.Text = ""; //Limiamos el textbox
}

6.3.1.1.3- Metodo para Modificar


private void Btnmodificar_Click(object sender, EventArgs e)
{
//Llamamos el Generic Repositorory
GenericRepository<TipoDeCombustible> _combustibleRepo = new
GenericRepository<TipoDeCombustible>();
var combustibleActualizar =
_combustibleRepo.FindById(Convert.ToInt32(dgvCombustible.CurrentRow.Cells["ID"].Value)
); //llamamos el metodo FindById indicandole el ID, para que nos traiga el modelo a
actualizar

//Modificamos en el formulario lo que queremos cambiar.


combustibleActualizar.Nombre = txtnombre.Text;
combustibleActualizar.FechaModificacion = DateTime.Now;

//llamamos el metodo update y le pasamos el modelo


_combustibleRepo.Update(combustibleActualizar);

//MessaBox para indicar que se actualizo el cliente.


MessageBox.Show("El Combustible fue Actualizado en la base de
Datos", "Combustible");

ActualizacionDelDGV(); //Actualizamos el DataGridView


txtnombre.Text = ""; //Limiamos el textbox
}
6.3.1.1.4- Metodo para Borrar
private void Btnborrar_Click(object sender, EventArgs e)
{
//Llamamos el Generic Repositorory
GenericRepository<TipoDeCombustible> _combustibleRepo = new
GenericRepository<TipoDeCombustible>();
var combustibleBorrar =
_combustibleRepo.FindById(Convert.ToInt32(dgvCombustible.CurrentRow.Cells["ID"].Value)
); //llamamos el metodo FindById indicandole el ID, para que nos traiga el modelo a
actualizar

//llamamos el metodo softDelete y le pasamos el modelo


_combustibleRepo.SoftDelete(combustibleBorrar);

//MessaBox para indicar que se borro el cliente.


MessageBox.Show("El Combustible fue Borrado en la base de Datos",
"Combustible");

ActualizacionDelDGV(); //Actualizamos el DataGridView


txtnombre.Text = ""; //Limpiamos el textbox
}

6.3.1.1.5- Metodo para Volver


private void Btnvolver_Click(object sender, EventArgs e)
{
frmAutos frmAutos = new frmAutos();
this.Hide();
frmAutos.ShowDialog();
}

6.3.1.1.6- Método para llenar el textbox cuando se haga clic en una


celda del datagridview
private void dgvCombustible_CellContentClick(object sender, DataGridViewCellEventArgs
e)
{
txtnombre.Text =
dgvCombustible.CurrentRow.Cells["Nombre"].Value.ToString();
}
6.3.1.2 – pantalla Transmisión

Esta pantalla es igual que la pantalla de combustible en todo.

6.3.1.3- Pantalla de Marca

Esta pantalla es igual que la pantalla de combustible en todo.


6.3.1.4- Pantalla de los modelos

Esta pantalla es igual que la pantalla de combustible en todo.

6.3.1.5-Pantalla Vehículos

Esta pantalla es igual que la pantalla de combustible en todo, pero pide más datos para registrar un
vehículo
6.3.1.6-Metodo para volver a la pantalla principal
private void Btnvolver_Click(object sender, EventArgs e)
{
frmPpricipal frmPpricipal = new frmPpricipal();
this.Hide();
frmPpricipal.ShowDialog();
}

6.4- Pantalla para registrar las ventas

Al igual que en todas las demás pantallas, esta hace lo mismo, pero, en esta se pide ID del cliente y el
de un vehículo, esto para poder registrar una venta, todos los métodos que están detallados en
combustible son igual y hacen lo mismo, solo que aplicado a la entidad ventas.

También podría gustarte