ASP.NET Core WebApi Extensions

MesoXPO Framework

ASP.NET Core WebApi Extensions

Zur Erstellung einer ASP.NET Core WebApi bieten sich folgende Erweiterungsmethoden an:

AddWinLineSystemDbUnitOfWork

services.AddWinLineSystemDbUnitOfWork(true, options => options.UseConnectionString(connectionStringWinLineSystem) .UseAutoCreationOption(AutoCreateOption.SchemaAlreadyExists) .UseEntityTypes(ConnectionHelper.GetPersistentTypesWinLineSystem())); // Oder den Namen des Connectionstrings aus der IConfiguration angeben services.AddWinLineSystemDbUnitOfWork(Configuration, "WinLineXPOSystemConnection", true, options => options.UseAutoCreationOption(AutoCreateOption.SchemaAlreadyExists) .UseEntityTypes(ConnectionHelper.GetPersistentTypesWinLineSystem())); //... #region Systemdatenbankzugriff für Mandanten-Datenobjekte, die in der Systemdatenbank liegen var scope = app.ApplicationServices.GetService<IServiceScopeFactory>()?.CreateScope(); var uow = scope?.ServiceProvider.GetService<SystemUnitOfWork>(); SystemUnitOfWork.SessionSystem = uow; #endregion

Verwendung in einer .NET Minimal Web API

using DevExpress.Xpo; using DevExpress.Xpo.DB; using MesoXPO; using MesoXPO.Helper; using MesoXPO.Helper.Extensions; using MesoXPO.Models; var builder = WebApplication.CreateBuilder(args); builder.Services.AddWinLineSystemDbUnitOfWork(builder.Configuration,"WinLineSystemConnection", true, options => options .UseAutoCreationOption(AutoCreateOption.SchemaAlreadyExists) .UseEntityTypes(ConnectionHelper.GetPersistentTypesWinLineSystem())); var app = builder.Build(); app.MapGet("/Artikel", (SystemUnitOfWork systemUnitOfWork, string mandant) => { var mesoObjectLayer = systemUnitOfWork.GetMesoObjectLayer(mandant); using var dataUow = mesoObjectLayer.GetDataUnitOfWork(); var artikel = dataUow.Query<ArtikelStammdatei>().Select(a => new { a.Artikelnummer, a.Bezeichnung }).ToList(); return Results.Ok(artikel); }); app.Run();

CSS EDV Support - Tobias Forbrich