private async Task <bool> Sender(UploadPdfReportDto request) { HttpClient client = new HttpClient(); var baseUrlStr = string.Format(baseSenderAddress, request.Schema); client.BaseAddress = new Uri(baseUrlStr); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var req = Newtonsoft.Json.JsonConvert.SerializeObject(request); //var result = await client.PostAsJsonAsync("api/report/UploadPdfReport", request); HttpContent inputContent = new StringContent(req, Encoding.UTF8, "application/json"); var result = await client.PostAsync("api/report/UploadPdfReport", inputContent); return(result.IsSuccessStatusCode); }
private async Task <bool> GenerateReport(string qRepName, QueueObject obj) { var reportData = (BaseFilterReportRequest)obj.FilterDataObj; var resp = new UploadPdfReportDto { PdfReportId = reportData.PdfReportId, Schema = reportData.Schema, Key = reportData.Key, Status = PDFReportStatus.Ready }; try { PdfDocumentDto pdfDoc; BaseFilterReportRequest req; switch (obj.Executor.Method.Name) { case "GetContactPdf": req = (BaseFilterReportRequest)obj.FilterDataObj; resp.PdfByteArr = obj.Executor.Invoke(req.ReportDto); break; case "GetTransactionPdf": req = (BaseFilterReportRequest)obj.FilterDataObj; resp.PdfByteArr = obj.Executor.Invoke(req.Filter); break; case "CreateContactReportPDf": var reqContPdf = (ContactReportPdfOnlyRequest)obj.FilterDataObj; pdfDoc = new PdfDocumentDto { ReportDto = reqContPdf.ReportDto, Contacts = reqContPdf.Contacts }; resp.PdfByteArr = obj.Executor.Invoke(pdfDoc); break; case "CreateTransactionReportPDf": var reqTransPdf = (TransactionReportPdfOnlyRequest)obj.FilterDataObj; pdfDoc = new PdfDocumentDto { Filter = reqTransPdf.Filter, Grouped = reqTransPdf.Grouped, CountTrans = reqTransPdf.TransactionCount }; resp.PdfByteArr = obj.Executor.Invoke(pdfDoc); break; default: throw new MissingMethodException("can't get correct method for delegate"); } } catch (Exception e) { resp.Status = PDFReportStatus.GenerationError; resp.Message = e.Message; resp.StackTrace = e.StackTrace; isWorking = false; } AddToSending(resp); if (!isSending && _sendingDict.Any()) { await SendReport(); } return(true); }
private void AddToSending(UploadPdfReportDto resp) { _sendingDict.TryAdd($"{resp.PdfReportId}_{resp.Schema}", resp); }