Fabrica para CRUD. AspNetCore y probando en visual para mac.

Continuando con armar una plantilla para proyectos de N capas con core, inyección de dependencias, versión de control y .NetCore, este es el git con el branch
- Para poder usar dentro del servicio la navegación entre tablas (join), se implementa en el proyecto servicio dos carpetas una de inclusines y otra de fabrica.

2. La carpeta inclusión permite por medio de su Interfaz navegar las las relaciones de las tablas, es muy importante incluir todas las interfaces en el middleware.
3. La carpeta fabrica es un genérico de operaciones CRUD y de búsqueda de datos.
4. Ya para probar todo entonces, cree en el servicio usuario implemente todo el cruz, pero en este brach solo prueba el GetAll, muy importante también crear la firma del método en el interfaz del servicio.
5. Para navegar entre las tablas se debe hacer uno de la interfaz de inclusión, se debe hacer la debida inyección de dependencias y usar el siguiente código, recordar que cuando hacemos el mapeo de las tablas a clases se crean las relaciones, tener en cuenta esos nombre para navegar por ellas.
private readonly IInclusion _inclusion;
public userService(TestEFCoreContext contextApp, IInclusion _inclusion) : base(contextApp)
{
this._inclusion = _inclusion;
}public List<userDTO> Get()
{
_inclusion.AddInclusion(nameof(User.person));
var items = Mapper.Map<List<User>, List<userDTO>>(GetAll(_inclusion.GetInclusions()).ToList());
_inclusion.ClearInclusions();
return items;
}
6. Para que el proyecto corriera hice unos cambios en el starup.cs.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}ConfigureSwagger(app, env);
Automapper.Configure(); <Cambio>app.UseCors(“CorsPolicy”);
app.UseHttpsRedirection();
app.UseMvc();
}
Esta es una la clase que esta en el middleware y le puse este método.
public static void Configure()
{
Mapper.Initialize(config =>
{
//inversion de control
config.CreateMap<User, userDTO>().ReverseMap();
});
}
7. Probe que funcionara tanto en windows como en mac
