guys probably we just created INTEGRATION with our library......
This commit is contained in:
parent
8c0ba59ff7
commit
720f041abf
5 changed files with 74 additions and 9 deletions
|
|
@ -1,6 +1,23 @@
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using SurveyLib.Core.Services;
|
||||||
|
|
||||||
namespace SurveyBackend.Controllers;
|
namespace SurveyBackend.Controllers;
|
||||||
|
|
||||||
public class TestController
|
[ApiController]
|
||||||
|
[Route("test")]
|
||||||
|
public class TestController : ControllerBase
|
||||||
{
|
{
|
||||||
|
private readonly ISurveyService _surveyService;
|
||||||
|
|
||||||
|
public TestController(ISurveyService surveyService)
|
||||||
|
{
|
||||||
|
_surveyService = surveyService;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<IActionResult> Get()
|
||||||
|
{
|
||||||
|
var result = await _surveyService.GetSurveysAsync();
|
||||||
|
return Ok(result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -4,6 +4,11 @@ using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
using SurveyBackend.Infrastructure;
|
using SurveyBackend.Infrastructure;
|
||||||
using SurveyBackend.Infrastructure.Data;
|
using SurveyBackend.Infrastructure.Data;
|
||||||
|
using SurveyLib.Core.Repositories;
|
||||||
|
using SurveyLib.Core.Services;
|
||||||
|
using SurveyLib.Infrastructure.EFCore.Data;
|
||||||
|
using SurveyLib.Infrastructure.EFCore.Repositories;
|
||||||
|
using SurveyLib.Infrastructure.EFCore.Services;
|
||||||
|
|
||||||
namespace SurveyBackend;
|
namespace SurveyBackend;
|
||||||
|
|
||||||
|
|
@ -18,9 +23,13 @@ public class Program
|
||||||
builder.Services.AddAuthorization();
|
builder.Services.AddAuthorization();
|
||||||
|
|
||||||
builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
||||||
{
|
options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")));
|
||||||
options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
|
|
||||||
});
|
builder.Services.AddScoped<SurveyDbContext>(provider => provider.GetRequiredService<ApplicationDbContext>());
|
||||||
|
|
||||||
|
builder.Services.AddScoped<ISurveyRepository, SurveyRepository>();
|
||||||
|
builder.Services.AddScoped<ISurveyService, SurveyService>();
|
||||||
|
|
||||||
|
|
||||||
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
.AddJwtBearer(options =>
|
.AddJwtBearer(options =>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,42 @@
|
||||||
using Microsoft.AspNetCore.Identity;
|
|
||||||
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using SurveyBackend.Core.Models;
|
using SurveyBackend.Core.Models;
|
||||||
|
using SurveyLib.Core.Models;
|
||||||
|
using SurveyLib.Infrastructure.EFCore.Data;
|
||||||
|
|
||||||
namespace SurveyBackend.Infrastructure.Data;
|
namespace SurveyBackend.Infrastructure.Data;
|
||||||
|
|
||||||
public class ApplicationDbContext : DbContext
|
public class ApplicationDbContext : SurveyDbContext
|
||||||
{
|
{
|
||||||
public DbSet<User> Users { get; set; }
|
public DbSet<User> Users { get; set; }
|
||||||
public DbSet<Group> Groups { get; set; }
|
public DbSet<Group> Groups { get; set; }
|
||||||
|
|
||||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
|
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
||||||
|
: base(options)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
// Вызов конфигурации базового контекста для моделей библиотеки
|
||||||
|
base.OnModelCreating(modelBuilder);
|
||||||
|
|
||||||
|
// Здесь можно описывать конфигурацию дополнительных сущностей и связи между моделями библиотеки и моделями приложения.
|
||||||
|
// Например, если Survey должен иметь связь с User (скажем, владелец опроса):
|
||||||
|
|
||||||
|
// Допустим, Survey не имеет в исходной модели свойства UserId.
|
||||||
|
// Можно использовать теневой ключ, или если ты готов расширить модель Survey в бэкенде.
|
||||||
|
// Пример с теневым ключом:
|
||||||
|
// modelBuilder.Entity<Survey>()
|
||||||
|
// .HasOne<User>() // тип связи: один пользователь
|
||||||
|
// .WithMany() // например, пользователь может владеть несколькими опросами
|
||||||
|
// .HasForeignKey("OwnerId"); // теневой ключ, который не прописан в модели Survey
|
||||||
|
|
||||||
|
// Или, если расширить Survey:
|
||||||
|
// public int? OwnerId { get; set; }
|
||||||
|
// modelBuilder.Entity<Survey>()
|
||||||
|
// .HasOne<User>()
|
||||||
|
// .WithMany(u => u.Surveys)
|
||||||
|
// .HasForeignKey(s => s.OwnerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\SurveyLib\SurveyLib.Infrastructure.EFCore\SurveyLib.Infrastructure.EFCore.csproj" />
|
||||||
<ProjectReference Include="..\SurveyBackend.Core\SurveyBackend.Core.csproj" />
|
<ProjectReference Include="..\SurveyBackend.Core\SurveyBackend.Core.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SurveyBackend.Core", "Surve
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SurveyBackend.Infrastructure", "SurveyBackend.Infrastructure\SurveyBackend.Infrastructure.csproj", "{4006471D-9F65-4AD6-852B-88A1211B49F4}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SurveyBackend.Infrastructure", "SurveyBackend.Infrastructure\SurveyBackend.Infrastructure.csproj", "{4006471D-9F65-4AD6-852B-88A1211B49F4}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SurveyLib.Infrastructure.EFCore", "..\SurveyLib\SurveyLib.Infrastructure.EFCore\SurveyLib.Infrastructure.EFCore.csproj", "{CD9FE310-CDD1-4661-AB41-E606D35E1694}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SurveyLib.Core", "..\SurveyLib\SurveyLib.Core\SurveyLib.Core.csproj", "{C17C405B-37CF-48E6-AA44-44B878F4DE56}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
|
@ -24,5 +28,13 @@ Global
|
||||||
{4006471D-9F65-4AD6-852B-88A1211B49F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{4006471D-9F65-4AD6-852B-88A1211B49F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4006471D-9F65-4AD6-852B-88A1211B49F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{4006471D-9F65-4AD6-852B-88A1211B49F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4006471D-9F65-4AD6-852B-88A1211B49F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
{4006471D-9F65-4AD6-852B-88A1211B49F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CD9FE310-CDD1-4661-AB41-E606D35E1694}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CD9FE310-CDD1-4661-AB41-E606D35E1694}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CD9FE310-CDD1-4661-AB41-E606D35E1694}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CD9FE310-CDD1-4661-AB41-E606D35E1694}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C17C405B-37CF-48E6-AA44-44B878F4DE56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C17C405B-37CF-48E6-AA44-44B878F4DE56}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C17C405B-37CF-48E6-AA44-44B878F4DE56}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C17C405B-37CF-48E6-AA44-44B878F4DE56}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue