Crud Capas
Crud Capas
Crud Capas
En el archivo programs
using Microsoft.EntityFrameworkCore;
using CapaDatos;
//using CapaEntity;
En la capa de Datos
namespace CapaDatos.Interfaces
{
//Sera una clase que utilizarán todos los modelos o metodos
public interface IGenericRepository<TEntityModel> where TEntityModel : class
{
//agregar metodos
Task<bool>Insertar(TEntityModel entity);
Task<bool>Actualizar(TEntityModel entity);
Task<bool>Eliminar(int id);
Task<bool>Obtener(int id);
//Devuelve una tabla
Task<IQueryable<TEntityModel>> ObtenerTodos();
}
}
Crear una clase
//Crear contructor
public DocenteService(IGenericRepository<Docente> DocenteRepo)
{
_DocenteRepo = DocenteRepo;
}
Queda así
En la capa Presentacion
Trabajar inyección de dependencias
Falta el Modal….
<!-- Modal-->
<div class="modal fade" id="modalData" tabindex="-1" role="dialog"aria-hidden="true" data-backdrop="static">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h6>Datos Docente</h6>
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form>
<input type="hidden" value="0" id="txtId">
<div class="row">
<div class="col-sm-8">
<div class="form-row">
<div class="form-group col-sm-6">
<label for="txtApellidos">Apellidos</label>
<input type="text" class="form-control form-control-sm input-validar" id="txtApellidos" name="txtApellidos">
</div>
<div class="form-group col-sm-6">
<label for="txtNombre">Nombres</label>
<input type="text" class="form-control form-control-sm input-validar" id="txtNombres" name="txtNombres">
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-12">
<label for="txtIdentificacion">Identificación</label>
<input type="text" class="form-control form-control-sm input-validar" id="txtIdDocente" name="txtIdDocente">
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-6">
<label for="txtDireccion">Dirección</label>
<input type="text" class="form-control form-control-sm input-validar" id="txtDireccion" name="txtDireccion">
</div>
<div class="form-group col-sm-6">
<label for="txtMunicipio">Municipio</label>
<input type="text" class="form-control form-control-sm input-validar" id="txtMunicipio" name="txtMunicipio">
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-6">
<label for="txtCelular">Celular</label>
<input type="text" class="form-control form-control-sm input-validar" id="txtCelular" name="txtCelular">
</div>
<div class="form-group col-sm-6">
<label for="txt">.</label>
<input type="text" class="form-control form-control-sm input-validar" id="txt" name="txt">
</div>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button class="btn btn-primary btn-sm" type="button" id="btnGuardar">Guardar</button>
<button class="btn btn-danger btn-sm" type="button" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
builder.Services.AddScoped<IGenericRepository<Docente>,TableRepository>();
builder.Services.AddScoped<IDocenteService,DocenteService>();
En el DocenteController
Antes
using CapaEntity;
using CapaReglasNeg.Service;
using DocentesApp.Models;
using DocentesApp.Models.VieModels;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
namespace DocentesApp.Controllers
{
public class DocenteController : Controller
{
private readonly IDocenteService _docenteService;
public DocenteController(IDocenteService docenteService)
{
_docenteService = docenteService;
}
public IActionResult Index()
{
return View();
}
[HttpGet]
public async Task<IActionResult> Lista()
{
IQueryable<Docente> queryDocenteSQL = await _docenteService.ObtenerTodos();
List<VMCDocente> lista = queryDocenteSQL.Select(c => new VMCDocente()
{
IdDocente = c.IdDocente,
Nombres = c.Nombres,
Apellidos = c.Apellidos,
Direccion = c.Direccion,
Correo = c.Correo,
Celular = c.Celular,
Municipio = c.Municipio,
}).ToList();
return StatusCode(StatusCodes.Status200OK, lista);
}
[HttpPost]
public async Task<IActionResult> Insertar([FromBody] VMCDocente modelo)
{
Docente NuevoModelo = new Docente()
{
Nombres = modelo.Nombres,
Apellidos = modelo.Apellidos,
Direccion = modelo.Direccion,
Correo = modelo.Correo,
Celular = modelo.Celular,
Municipio = modelo.Municipio
};
bool respuesta = await _docenteService.Insertar(NuevoModelo);
return StatusCode(StatusCodes.Status200OK, new { valor = respuesta });
}
[HttpPut]
public async Task<IActionResult> Actualizar([FromBody] VMCDocente modelo)
{
Docente NuevoModelo = new Docente()
{
IdDocente = modelo.IdDocente,
Nombres = modelo.Nombres,
Apellidos = modelo.Apellidos,
Direccion = modelo.Direccion,
Correo = modelo.Correo,
Celular = modelo.Celular,
Municipio = modelo.Municipio
};
bool respuesta = await _docenteService.Actualizar(NuevoModelo);
return StatusCode(StatusCodes.Status200OK, new { valor = respuesta });
}
[HttpDelete]
public async Task<IActionResult> Eliminar(string id)
{
}
}