private void SetNoteHeader(SinacorNoteDto sn) { var noteHeaderRect = RectanglePositions.GetRectangle(NotePosition.NoteIdRectangle); try { int n = PdfDocument.GetNumberOfPages(); for (int i = 1; i <= n; i++) { PdfPage page = PdfDocument.GetPage(i); var header = ReaderExtensions.ExtractText(page, noteHeaderRect).FirstOrDefault(); var headerItens = header.Split(' '); sn.Id = headerItens[0]; //sn.PageNumber = int.Parse(headerItens[1]); sn.Date = DateTime.Parse(headerItens[2]); return; } throw new Exception("BrokerName not found"); } catch (Exception) { throw; } }
private DateTime GetNegotiationDate(PdfPage page) { var addressRect = SinacorNotePosition.GetRectangle(SinacorNotePosition.NegotiationDate); var ret = ReaderExtensions.ExtractText(page, addressRect).FirstOrDefault(); return(DateTime.ParseExact(ret, "dd/MM/yyyy", CultureInfo.InvariantCulture)); }
private string GetBrokerName() { var addressRect = RectanglePositions.GetRectangle(NotePosition.BrokerNameRectangle); PdfPage page = PdfDocument.GetPage(1); return(ReaderExtensions.ExtractText(page, addressRect).FirstOrDefault()); throw new Exception("BrokerName not found"); }
private List <OperationType> ProcessOperationTypeColumn(PdfPage page) { var addressRect = SinacorNotePosition .GetRectangle(SinacorNotePosition.NegotiationColumnsPosition.OperationTypeColumn); var operationTypeCells = ReaderExtensions.ExtractText(page, addressRect).First() .Split(Environment.NewLine.ToCharArray()).Select(x => x == "C" ? OperationType.Buy : OperationType.Sell); return(operationTypeCells.ToList()); }
private List <decimal> ProcessStockPriceColumn(PdfPage page) { var addressRect = SinacorNotePosition .GetRectangle(SinacorNotePosition.NegotiationColumnsPosition.StockPriceColumn); var stockAmountCells = ReaderExtensions.ExtractText(page, addressRect) .First().Split(Environment.NewLine.ToCharArray()).Select(x => decimal.Parse(x)); return(stockAmountCells.ToList()); }
private List <string> ProcessStockNameColumn(PdfPage page) { var addressRect = SinacorNotePosition .GetRectangle(SinacorNotePosition.NegotiationColumnsPosition.StockNameColumn); var ret = ReaderExtensions.ExtractText(page, addressRect) .First().Split(Environment.NewLine.ToCharArray()); //Removing stock's specifications like ordinárias (ON) ou preferenciais (PN), //this usually occurs after two consecultive spaces after stock's name var stockNameCells = ret.Select(X => X.Split(new string[] { " " }, StringSplitOptions.None)[0]).ToList(); return(stockNameCells); }
public decimal GetTotalBuys() { var financialResume = RectanglePositions.GetRectangle(NotePosition.TotalBuys); try { var negotiations = new List <string>(); int n = PdfDocument.GetNumberOfPages(); for (int i = 1; i <= n; i++) { PdfPage page = PdfDocument.GetPage(i); var text = ReaderExtensions.ExtractText(page, financialResume).FirstOrDefault(); var sells = text.Split(' '); return(decimal.Parse(sells[3])); } throw new Exception("TotalBuys not found"); } catch (Exception) { throw new Exception("Error while parsing buys"); } }
private string GetBrokerName(PdfPage page) { var addressRect = SinacorNotePosition.GetRectangle(SinacorNotePosition.BrokerNameRectangle); return(ReaderExtensions.ExtractText(page, addressRect).FirstOrDefault()); }