Thinking about shunting most of the file parsing into db services since it should be done once

This commit is contained in:
Lani Aung
2021-10-27 07:58:18 -06:00
parent 804ccd0eeb
commit d52cc4b206
16 changed files with 271 additions and 113 deletions
+6 -19
View File
@@ -1,8 +1,8 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.IsolatedStorage;
using System.Linq;
using System.Threading.Tasks;
using fxl.codes.kisekae.Models;
using fxl.codes.kisekae.Services;
@@ -29,33 +29,20 @@ namespace fxl.codes.kisekae.Controllers
}
[HttpGet]
public IActionResult Index()
public async Task<IActionResult> Index()
{
var directories = _storage.GetDirectoryNames();
var model = new List<DirectoryModel>();
foreach (var directory in directories)
{
var files = _storage.GetFileNames(Path.Combine(directory, "*.cnf"));
if (files.Length <= 0) continue;
var doll = new DirectoryModel(directory);
foreach (var file in files) doll.Configurations.Add(new ConfigurationModel(file));
model.Add(doll);
}
return View(model);
var files = await _databaseService.GetAll();
return View(files.Select(x => new ConfigurationModel(x)));
}
[HttpPost]
public async Task<IActionResult> Upload(IFormFile file)
public IActionResult Upload(IFormFile file)
{
_logger.LogTrace($"File uploaded: {file?.FileName}");
if (!(file?.FileName.EndsWith("lzh", StringComparison.InvariantCultureIgnoreCase) ?? false))
throw new Exception("Please select a *.lzh file");
await _databaseService.StoreToDatabase(file);
_databaseService.StoreToDatabase(file);
return Redirect("/");
}
+23
View File
@@ -0,0 +1,23 @@
using System.Linq;
using System.Threading.Tasks;
using fxl.codes.kisekae.Models;
using fxl.codes.kisekae.Services;
using Microsoft.AspNetCore.Mvc;
namespace fxl.codes.kisekae.Controllers
{
public class PlayController : Controller
{
private readonly DatabaseService _databaseService;
public PlayController(DatabaseService databaseService)
{
_databaseService = databaseService;
}
public async Task<IActionResult> Index(int id, int configId)
{
return View();
}
}
}