56 lines
2.3 KiB
C#
56 lines
2.3 KiB
C#
using EnvelopeGenerator.Common;
|
|
using EnvelopeGenerator.Web.Services;
|
|
|
|
namespace EnvelopeGenerator.Web.Handler
|
|
{
|
|
public class FileHandler
|
|
{
|
|
public async static Task<IResult> HandleFile(HttpContext ctx, DatabaseService database, LoggingService logging)
|
|
{
|
|
var logger = logging.LogConfig.GetLogger("FileHandler");
|
|
string envelopeKey = (string)ctx.Request.RouteValues["envelopeKey"];
|
|
|
|
logger.Info("Downloading file with EnvelopeKey [{0}]", envelopeKey);
|
|
|
|
Tuple<string, string> result = Helpers.DecodeEnvelopeReceiverId(envelopeKey);
|
|
logger.Info("EnvelopeUUID: [{0}]", result.Item1);
|
|
logger.Info("ReceiverSignature: [{0}]", result.Item2);
|
|
|
|
EnvelopeResponse response = database.LoadEnvelope(envelopeKey);
|
|
var envelope = response.Envelope;
|
|
logger.Info("Envelope [{0}] loaded", envelope.Id);
|
|
logger.Info("Contains [{0}] documents", envelope.Documents.Count);
|
|
logger.Info("Contains [{0}] receivers", envelope.Receivers.Count);
|
|
|
|
var document = envelope.Documents.First();
|
|
var bytes = await File.ReadAllBytesAsync(document.Filepath);
|
|
logger.Info("Serving file, size: [{0}]", bytes.Length);
|
|
|
|
return Results.File(bytes);
|
|
|
|
}
|
|
|
|
public static Task<IResult> HandleGetData(HttpContext ctx, DatabaseService database, LoggingService logging)
|
|
{
|
|
var logger = logging.LogConfig.GetLogger("FileHandler");
|
|
string envelopeKey = (string)ctx.Request.RouteValues["envelopeKey"];
|
|
|
|
logger.Info("Fetching data for envelope with EnvelopeKey [{0}]", envelopeKey);
|
|
|
|
Tuple<string, string> result = Helpers.DecodeEnvelopeReceiverId(envelopeKey);
|
|
logger.Info("EnvelopeUUID: [{0}]", result.Item1);
|
|
logger.Info("ReceiverSignature: [{0}]", result.Item2);
|
|
|
|
var response = database.LoadEnvelope(envelopeKey);
|
|
var envelope = response.Envelope;
|
|
logger.Info("Envelope [{0}] loaded", envelope.Id);
|
|
logger.Info("Contains [{0}] documents", envelope.Documents.Count);
|
|
logger.Info("Contains [{0}] receivers", envelope.Receivers.Count);
|
|
|
|
|
|
return Task.FromResult(Results.Json(response));
|
|
}
|
|
|
|
}
|
|
}
|