using HopFrame.Testing; using Microsoft.FluentUI.AspNetCore.Components; using HopFrame.Testing.Components; using HopFrame.Testing.Models; using HopFrame.Web; using HopFrame.Web.Components.Pages; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); builder.Services.AddFluentUIComponents(); builder.Services.AddDbContext(options => { options.UseInMemoryDatabase("testing"); }); builder.Services.AddHopFrame(options => { options.DisplayUserInfo(false); options.AddDbContext(context => { context.Table(table => { table.Property(u => u.Password) .ValueParser(pwd => pwd + "-edited"); table.Property(u => u.FirstName) .List(false); table.Property(u => u.LastName) .List(false); table.Property(u => u.Id) .Sortable(false) .OrderIndex(3); table.AddListingProperty("Name", user => $"{user.FirstName} {user.LastName}") .OrderIndex(2); table.SetDisplayName("Benutzer"); table.SetDescription("This table is used for user data store and user authentication"); table.SetViewPolicy("policy"); }); context.Table() .Property(p => p.Author) .Format(user => $"{user?.FirstName} {user?.LastName}"); context.Table() .Property(p => p.Id) .SetDisplayName("ID"); context.Table() .Property(p => p.CreatedAt); context.Table() .Property(p => p.Caption) .Validator(input => { var errors = new List(); if (input is null) errors.Add("Value cannot be null"); if (input?.Length > 10) errors.Add("Value can only be 10 characters long"); return errors; }); context.Table() .OrderIndex(-1); }); }); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error", createScopeForErrors: true); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseAntiforgery(); app.MapStaticAssets(); app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddAdditionalAssemblies(typeof(HopFrameHome).Assembly); app.Run();