Ejemplo n.º 1
0
        //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;
            //}
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }