//private List<NegotiationDto> GetNegotiations(SinacorNoteDto sn) //{ // var negotiationsRec = RectanglePositions.GetRectangle(NotePosition.NegotiationsRectangle); // try // { // var negotiations = new List<string>(); // int n = PdfDocument.GetNumberOfPages(); // for (int i = 1; i <= n; i++) // { // PdfPage page = PdfDocument.GetPage(i); // negotiations.AddRange(ReaderExtensions.ExtractText(page, negotiationsRec).ToList()); // } // //Parsing Sinacor Negotiations // var ret = SinacorNoteParser.ParseNegotiations(negotiations, sn); // return ret; // } // catch (Exception ex) // { // throw; // } //} private List <NegotiationDto> GetNegotiations(SinacorNoteDto sn) { return(null); //var negotiationsRec = RectanglePositions.GetRectangle(NotePosition.NegotiationsPosition.); //try //{ // var negotiations = new List<string>(); // int n = PdfDocument.GetNumberOfPages(); // for (int i = 1; i <= n; i++) // { // PdfPage page = PdfDocument.GetPage(i); // negotiations.AddRange(ReaderExtensions.ExtractText(page, negotiationsRec).ToList()); // } // //Parsing Sinacor Negotiations // var ret = SinacorNoteParser.ParseNegotiations(negotiations, sn); // return ret; //} //catch (Exception ex) //{ // throw; //} }
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; } }
public SinacorNoteDto GetSinacorNote() { try { SinacorNoteDto sinacorNote = new SinacorNoteDto(); sinacorNote.Broker = GetBrokerName(); SetNoteHeader(sinacorNote); sinacorNote.Negotiations = GetNegotiations(sinacorNote); sinacorNote.TotalSells = GetTotalSells(); sinacorNote.TotalBuys = GetTotalBuys(); if (!sinacorNote.OperationsAreValid()) { throw new Exception("Operations are not valid"); } return(sinacorNote); } catch (Exception ex) { throw; } finally { ClosePdf(); } }
private static NegotiationDto ParseNegotiationLine(string negotiation, NegotiationType nt, SinacorNoteDto sn) { ; var ret = new NegotiationDto(); try { var negotiantionStrList = JoinCompanyName(negotiation).Split(' ').ToList(); negotiantionStrList.RemoveAll(n => string.IsNullOrWhiteSpace(n)); //Removing last ocurrency string Buy(D) Sell (C) that wasnt removed on outside split var lastElement = negotiantionStrList.ElementAt(negotiantionStrList.Count - 1); if (lastElement.Last().Equals('D') || lastElement.Last().Equals('C')) { negotiantionStrList.RemoveAt(negotiantionStrList.Count - 1); } //Removing column Prazo if (negotiantionStrList.Count() == 11) { negotiantionStrList.RemoveAt(3); } //Removing column Obs. (*) if (negotiantionStrList.Count() == 10) { negotiantionStrList.RemoveAt(6); } ret = new NegotiationDto(); ret.SinacorNoteId = sn.Id; ret.Stock = negotiantionStrList.ElementAt(3); ret.NegotiationType = nt; ret.Amount = int.Parse(negotiantionStrList.ElementAt(4)); ret.UnitaryPrice = decimal.Parse(negotiantionStrList.ElementAt(5)); ret.TotalPrice = decimal.Parse(negotiantionStrList.ElementAt(6)); } catch (Exception ex) { throw; } return(ret); }
public static List <NegotiationDto> ParseNegotiations(List <string> negotiations, SinacorNoteDto sn) { List <NegotiationDto> ret = new List <NegotiationDto>(); foreach (var n in negotiations) { if (Regex.IsMatch(negotiations.First(), @" D\n")) { ret.AddRange( Regex.Split(negotiations.First(), @" D\n") .Select(bn => ParseNegotiationLine(bn, NegotiationType.BUY, sn)) .ToList() ); } else if (Regex.IsMatch(negotiations.First(), @" C\n")) { ret.AddRange( Regex.Split(negotiations.First(), @" C\n") .Select(bn => ParseNegotiationLine(bn, NegotiationType.SELL, sn)) .ToList() ); } } return(ret); }