using EnvelopeGenerator.Common; using EnvelopeGenerator.Web.Services; namespace EnvelopeGenerator.Web.Handler { public class FileHandler { public async static Task 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 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 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 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)); } } }