import / export des blog et utilisateurs

This commit is contained in:
Paul Schneider
2025-08-18 09:21:35 +01:00
parent ac319f9994
commit 59063e0fd8

View File

@ -0,0 +1,72 @@
using System.IO.Compression;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using Yavsc.Models;
using Yavsc.Models.Blog;
namespace Yavsc.Controllers
{
[Authorize()]
public class DatabaseController : Controller
{
private readonly ILogger<DatabaseController> logger;
private readonly ApplicationDbContext applicationDbContext;
public DatabaseController(ApplicationDbContext applicationDbContext,
ILoggerFactory loggerFactory)
{
logger = loggerFactory.CreateLogger<DatabaseController>();
this.applicationDbContext = applicationDbContext;
}
public IActionResult GetBlog()
{
var data = applicationDbContext.BlogSpot.ToArray();
return Ok(JsonConvert.SerializeObject(data, Formatting.None));
}
public IActionResult GetUsers()
{
var data = applicationDbContext.Users.ToArray();
return Ok(JsonConvert.SerializeObject(data, Formatting.None));
}
public IActionResult ImportUsers(String usersJson)
{
int failures = 0;
var input = JsonConvert.DeserializeObject<ApplicationUser[]>(usersJson);
foreach (var user in input)
{
try
{
applicationDbContext.Users.Add(user);
}
catch (Exception ex)
{
failures++;
}
}
return Ok(failures);
}
public IActionResult ImportBlog(String blogJson)
{
int failures = 0;
var input = JsonConvert.DeserializeObject<BlogPost[]>(blogJson);
foreach (var post in input)
{
try
{
applicationDbContext.BlogSpot.Add(post);
}
catch (Exception ex)
{
failures++;
}
}
return Ok(failures);
}
}
}