Alle Entitäten wurden mit Attributen erstellt und zu EFCore DBContex hinzugefügt.

This commit is contained in:
Developer 02
2024-04-02 14:53:25 +02:00
parent 6fc210132d
commit b65766ce24
30 changed files with 772 additions and 269 deletions

View File

@@ -2,27 +2,29 @@
using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services;
using Microsoft.AspNetCore.Mvc;
using System.Text;
namespace EnvelopeGenerator.Web.Controllers
{
public class BaseController : Controller
{
internal DatabaseService database;
internal LogConfig logConfig;
internal State state;
public Logger logger;
public BaseController(DatabaseService database, LoggingService logging)
internal ILogger _logger;
public BaseController(DatabaseService database, ILogger logger)
{
this.database = database;
this.logConfig = logging.LogConfig;
this.logger = logging.LogConfig.GetLogger();
this.state = database.State;
_logger = logger;
}
internal ObjectResult ErrorResponse(Exception e)
{
logger.Error(e);
// Log the detailed error message.
_logger.LogError(e, "An unexpected error occurred.");
return Problem(
statusCode: 500,
detail: e.Message,

View File

@@ -3,6 +3,7 @@ using EnvelopeGenerator.Application.Contracts;
using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Infrastructure.Contracts;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Web.Controllers
{
@@ -10,6 +11,16 @@ namespace EnvelopeGenerator.Web.Controllers
{
public ConfigTestController(ILogger<ConfigTestController> logger, IConfigService service) : base(logger, service)
{
_logger.LogInformation("TEST_INFO");
_logger.LogError("TEST_ERROR");
}
[HttpGet("test")]
public IActionResult Test()
{
_logger.LogError("Test Error");
_logger.LogInformation("Test Info");
throw new ArgumentNullException();
}
}
}

View File

@@ -1,7 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services;
using static EnvelopeGenerator.Common.Constants;
using EnvelopeGenerator.Application.Contracts;
namespace EnvelopeGenerator.Web.Controllers
@@ -12,7 +11,7 @@ namespace EnvelopeGenerator.Web.Controllers
private readonly ActionService? actionService;
private readonly IEnvelopeDocumentService _envDocService;
public DocumentController(DatabaseService database, LoggingService logging, EnvelopeService envelope, IEnvelopeDocumentService envDocService) : base(database, logging)
public DocumentController(DatabaseService database, EnvelopeService envelope, IEnvelopeDocumentService envDocService, ILogger<DocumentController> logger) : base(database, logger)
{
envelopeService = envelope;
actionService = database.Services?.actionService;
@@ -25,15 +24,12 @@ namespace EnvelopeGenerator.Web.Controllers
{
try
{
logger.Info("DocumentController/Get");
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
// Load document info
var Request = ControllerContext.HttpContext.Request;
var document = await envelopeService.GetDocument(Request, envelopeKey);
var document = await envelopeService.GetDocument(index, envelopeKey);
// Load the document from disk
var bytes = await envelopeService.GetDocumentContents(document);
@@ -41,9 +37,9 @@ namespace EnvelopeGenerator.Web.Controllers
// Return the document as bytes
return File(bytes, "application/octet-stream");
}
catch (Exception e)
catch(Exception ex)
{
return ErrorResponse(e);
return ErrorResponse(ex);
}
}
@@ -53,19 +49,17 @@ namespace EnvelopeGenerator.Web.Controllers
{
try
{
logger.Info("DocumentController/Open");
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
actionService.OpenEnvelope(response.Envelope, response.Receiver);
actionService?.OpenEnvelope(response.Envelope, response.Receiver);
return Ok(new object());
}
catch (Exception e)
catch(Exception ex)
{
return ErrorResponse(e);
return ErrorResponse(ex);
}
}

View File

@@ -1,4 +1,5 @@
using EnvelopeGenerator.Common;
using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services;
using Microsoft.AspNetCore.Mvc;
@@ -7,12 +8,12 @@ namespace EnvelopeGenerator.Web.Controllers
public class EnvelopeController : BaseController
{
private readonly EnvelopeService envelopeService;
private readonly ActionService actionService;
private readonly ActionService? actionService;
public EnvelopeController(DatabaseService database, LoggingService logging, EnvelopeService envelope) : base(database, logging)
public EnvelopeController(DatabaseService database, EnvelopeService envelope, ILogger<EnvelopeController> logger) : base(database, logger)
{
envelopeService = envelope;
actionService = database.Services?.actionService;
actionService = database?.Services?.actionService;
}
[HttpGet]
@@ -21,8 +22,6 @@ namespace EnvelopeGenerator.Web.Controllers
{
try
{
logger.Info("EnvelopeController/Get");
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
@@ -32,7 +31,7 @@ namespace EnvelopeGenerator.Web.Controllers
return Problem(statusCode: 403);
}
logger.Debug("Loaded envelope [{0}] for receiver [{1}]", response.Envelope.Id, response.Envelope.Id);
_logger.LogInformation("Loaded envelope [{0}] for receiver [{1}]", response.Envelope.Id, response.Envelope.Id);
return Json(response);
}
catch (Exception e)
@@ -43,12 +42,10 @@ namespace EnvelopeGenerator.Web.Controllers
[HttpPost]
[Route("api/envelope/{envelopeKey}")]
public async Task<IActionResult> Update(string envelopeKey)
public async Task<IActionResult> Update(string envelopeKey, int index)
{
try
{
logger.Info("EnvelopeController/Update");
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
@@ -59,10 +56,9 @@ namespace EnvelopeGenerator.Web.Controllers
return Problem(statusCode: 403);
}
var Request = ControllerContext.HttpContext.Request;
var document = envelopeService.GetDocument(Request, envelopeKey);
var document = envelopeService.GetDocument(index, envelopeKey);
string annotationData = await envelopeService.EnsureValidAnnotationData(Request);
string? annotationData = await envelopeService.EnsureValidAnnotationData(Request);
envelopeService.InsertDocumentStatus(new DocumentStatus()
{
@@ -74,7 +70,7 @@ namespace EnvelopeGenerator.Web.Controllers
var signResult = actionService?.SignEnvelope(response.Envelope, response.Receiver);
return Ok(new object());
return Ok();
}
catch (Exception e)
{

View File

@@ -12,4 +12,4 @@ namespace EnvelopeGenerator.Web.Controllers
{
}
}
}
}

View File

@@ -10,10 +10,12 @@ namespace EnvelopeGenerator.Web.Controllers
public class HomeController : BaseController
{
private readonly EnvelopeService _envelopeService;
private readonly IConfiguration _config;
public HomeController(DatabaseService databaseService, LoggingService loggingService, EnvelopeService envelopeService): base(databaseService, loggingService)
public HomeController(DatabaseService databaseService, EnvelopeService envelopeService, ILogger<HomeController> logger, IConfiguration configuration) : base(databaseService, logger)
{
_envelopeService = envelopeService;
_config = configuration;
}
[HttpGet]
@@ -25,12 +27,11 @@ namespace EnvelopeGenerator.Web.Controllers
[HttpPost]
[Route("/")]
public IActionResult DebugEnvelopes()
public IActionResult DebugEnvelopes([FromForm] string password)
{
try
{
StringValues passwordFromForm = HttpContext.Request.Form["password"];
string passwordFromConfig = database.GetAppSetting("Config:AdminPassword");
var passwordFromConfig = _config["Config:AdminPassword"] ?? throw new InvalidOperationException("No admin password configured!");
if (passwordFromConfig == null)
{
@@ -38,14 +39,6 @@ namespace EnvelopeGenerator.Web.Controllers
return View("Index");
}
if (passwordFromForm.Count != 1)
{
ViewData["error"] = "No admin password configured!";
return View("Index");
}
string password = passwordFromForm[0];
if (password == null)
{
ViewData["error"] = "No password supplied!";
@@ -107,7 +100,7 @@ namespace EnvelopeGenerator.Web.Controllers
return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked");
}
if (accessCode.Equals(access_code, StringComparison.Ordinal))
if (accessCode == access_code)
{
bool actionResult = database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver);
ViewData["EnvelopeKey"] = envelopeReceiverId;