diff --git a/src/Yavsc/Controllers/Administration/DatabaseController.cs b/src/Yavsc/Controllers/Administration/DatabaseController.cs new file mode 100644 index 00000000..2474b708 --- /dev/null +++ b/src/Yavsc/Controllers/Administration/DatabaseController.cs @@ -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 logger; + private readonly ApplicationDbContext applicationDbContext; + + public DatabaseController(ApplicationDbContext applicationDbContext, + ILoggerFactory loggerFactory) + { + logger = loggerFactory.CreateLogger(); + 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(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(blogJson); + foreach (var post in input) + { + try + { + applicationDbContext.BlogSpot.Add(post); + } + catch (Exception ex) + { + failures++; + } + } + return Ok(failures); + } + } +}