public async Task <IActionResult> Confirmation([FromHeader] string apiJwtToken, [FromBody] WebServiceRequest webServiceRequest) { try { var confirmationReportParameters = new ConfirmationReportParameters { ApiJwtToken = apiJwtToken, ActionName = webServiceRequest.ActionName, Template = TemplateConstants.ConfirmationTemplate, Format = webServiceRequest.Format, TradeReferences = webServiceRequest.Entities }; var confirmationReport = await confirmationReportService.CreateReport(confirmationReportParameters); return(confirmationReport.Status == ApiConstants.SuccessResult ? (IActionResult)Ok(confirmationReport) : BadRequest(confirmationReport)); } catch (Exception e) { logger.LogError(e, e.Message); return(BadRequest(new ApiResponseWrapper <WebServiceResponse> { Message = e.Message, Status = ApiConstants.FailedResult })); } }
public async Task <ApiResponseWrapper <WebServiceResponse> > CreateReport(ConfirmationReportParameters confirmationReportParameters) { try { var apiJwtToken = confirmationReportParameters.ApiJwtToken; var request = new TradeRequest { TradeReferences = confirmationReportParameters.TradeReferences }; var trades = await tradeService.Trades(apiJwtToken, request); if (trades.Status == ApiConstants.SuccessResult) { var enrichedTrades = await EnrichTradesWithCountries(trades.Data, confirmationReportParameters); var template = await reportTemplateService.ReportTemplate(confirmationReportParameters.Template); var tradeDataObjects = enrichedTrades.ToList(); var report = await reportRenderService.Render(template?.Data?.Html, confirmationReportParameters.Format, tradeDataObjects); var ms = new MemoryStream(); report.Content.CopyTo(ms); return(new ApiResponseWrapper <WebServiceResponse> { Status = ApiConstants.SuccessResult, Data = new WebServiceResponse { ActionName = confirmationReportParameters.ActionName, Format = confirmationReportParameters.Format, Data = Convert.ToBase64String(ms.ToArray()) } }); } logger.LogError("Error calling Trade API", trades.Message); return(new ApiResponseWrapper <WebServiceResponse> { Status = ApiConstants.FailedResult, Message = trades.Message }); } catch (Exception e) { logger.LogError(e, e.Message); return(new ApiResponseWrapper <WebServiceResponse> { Status = ApiConstants.FailedResult, Message = e.Message }); } }