Added api endpoints and configured hopframe
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
using HopFrame.Core.Config;
|
||||
using HopFrame.Web;
|
||||
using Portfolio.Api;
|
||||
using Portfolio.Api.Services;
|
||||
using Portfolio.Shared.Models;
|
||||
using Portfolio.Shared.Services;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
@@ -8,11 +12,53 @@ var builder = WebApplication.CreateBuilder(args);
|
||||
builder.Services.AddOpenApi();
|
||||
builder.AddServiceDefaults();
|
||||
|
||||
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||
builder.AddNpgsqlDbContext<DatabaseContext>("data");
|
||||
|
||||
builder.Services.AddScoped<IProjectRepository, ProjectRepository>();
|
||||
builder.Services.AddScoped<ITechnologyRepository, TechnologyRepository>();
|
||||
builder.Services.AddScoped<ITimelineRepository, TimelineRepository>();
|
||||
builder.Services.AddScoped<IAboutRepository, AboutRepository>();
|
||||
|
||||
builder.Services.AddControllers();
|
||||
|
||||
builder.Services.AddHopFrame(options => {
|
||||
options.DisplayUserInfo(false);
|
||||
options.AddDbContext<DatabaseContext>();
|
||||
options.AddDbContext<DatabaseContext>(context => {
|
||||
context.Table<Project>(table => {
|
||||
var langConfig = table.InnerConfig.Properties
|
||||
.Single(prop => prop.Name == nameof(Project.Languages));
|
||||
|
||||
langConfig
|
||||
.GetType()!
|
||||
.GetProperty(nameof(PropertyConfig.IsRelation))!
|
||||
.SetValue(langConfig, true);
|
||||
|
||||
langConfig
|
||||
.GetType()!
|
||||
.GetProperty(nameof(PropertyConfig.IsEnumerable))!
|
||||
.SetValue(langConfig, true);
|
||||
|
||||
langConfig
|
||||
.GetType()!
|
||||
.GetProperty(nameof(PropertyConfig.IsRequired))!
|
||||
.SetValue(langConfig, true);
|
||||
|
||||
table.Property(p => p.Languages)
|
||||
.FormatEach<Language>((l, _) => l.Label)
|
||||
.List(false);
|
||||
|
||||
table.Property(p => p.Cover)
|
||||
.List(false);
|
||||
|
||||
table.Property(p => p.Description)
|
||||
.List(false)
|
||||
.IsTextArea(true);
|
||||
|
||||
table.Property(p => p.SourceCode)
|
||||
.List(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
builder.Services.AddRazorComponents()
|
||||
.AddInteractiveServerComponents();
|
||||
@@ -32,6 +78,8 @@ await using (var scope = app.Services.CreateAsyncScope()) {
|
||||
app.UseHttpsRedirection();
|
||||
app.MapDefaultEndpoints();
|
||||
|
||||
app.MapControllers();
|
||||
|
||||
app.UseAntiforgery();
|
||||
app.MapStaticAssets();
|
||||
app.MapRazorComponents<App>()
|
||||
|
||||
Reference in New Issue
Block a user