Added Models for displaying files and all kinds of stuff

This commit is contained in:
schnulller
2022-06-06 22:44:56 +02:00
parent cb3a09a7de
commit 84048f9fe9
17 changed files with 248 additions and 47 deletions

View File

@@ -1,26 +1,43 @@
namespace HaWeb.FileHelpers;
using HaDocument.Interfaces;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.FileProviders;
public class HaDocumentWrapper : IHaDocumentWrappper {
public ILibrary Library;
private ILibrary Library;
private IXMLProvider _xmlProvider;
private int _startYear;
private int _endYear;
public HaDocumentWrapper(IXMLProvider xmlProvider, IConfiguration configuration) {
_xmlProvider = xmlProvider;
_startYear = configuration.GetValue<int>("AvailableStartYear");
_endYear = configuration.GetValue<int>("AvailableEndYear");
var filelist = xmlProvider.GetHamannFiles();
if (filelist != null && filelist.Any())
_AutoLoad(filelist);
// Use Fallback library
if (Library == null)
Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions() { AvailableYearRange = (_startYear, _endYear) });
public HaDocumentWrapper() {
Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions());
}
public ILibrary SetLibrary() {
Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions());
public ILibrary ResetLibrary() {
Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions() { AvailableYearRange = (_startYear, _endYear) });
return Library;
}
public ILibrary? SetLibrary(string filepath, ModelStateDictionary ModelState) {
public ILibrary? SetLibrary(string filepath, ModelStateDictionary? ModelState = null) {
try
{
Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions() { HamannXMLFilePath = filepath });
Library = HaDocument.Document.Create(new HaWeb.Settings.HaDocumentOptions() { HamannXMLFilePath = filepath, AvailableYearRange = (_startYear, _endYear) });
}
catch (Exception ex) {
ModelState.AddModelError("Error:", "Das Dokument konnte nicht geparst werden: " + ex.Message);
if (ModelState != null) ModelState.AddModelError("Error:", "Das Dokument konnte nicht geparst werden: " + ex.Message);
return null;
}
return Library;
@@ -29,4 +46,11 @@ public class HaDocumentWrapper : IHaDocumentWrappper {
public ILibrary GetLibrary() {
return Library;
}
private void _AutoLoad(List<IFileInfo> files) {
var orderdlist = files.OrderByDescending(x => x.LastModified);
foreach(var item in orderdlist) {
if (SetLibrary(item.PhysicalPath) != null) return;
}
}
}