Ejemplo n.º 1
0
        public CommonStockActor(CommonStockInfo commonStork, IActorRef eodStocksActor)
        {
            CommonStorkData = commonStork;
            Discussions     = new List <DiscussionItem>();


            Receive <GetStockInfo>(m =>
            {
                Sender.Tell(CommonStorkData);
            });

            Receive <GetDiscussion>(m => {
                Sender.Tell(new ReadOnlyCollection <DiscussionItem>(Discussions));
            });

            Receive <AddDiscussion>(m => {
                var discussionItem = new DiscussionItem {
                    Id        = Discussions.Count + 1,
                    UserName  = m.UserName,
                    Comment   = m.Comment,
                    EnteredOn = m.EnteredOn
                };
                Discussions.Add(discussionItem);
                Sender.Tell(new DiscussionAdded(discussionItem.Id));
            });
        }
Ejemplo n.º 2
0
        public void SearchStockProfileSampleFileTest()
        {
            string rootNodeDoc  = @"//*[contains(@class,'table-reponsive')]";
            string xPathStrong  = @"//div/strong[starts-with(normalize-space(text()),'{0}')]/parent::div/following-sibling::div";
            string xPathStrongA = @"//div/strong[starts-with(normalize-space(text()),'{0}')]/parent::div/following-sibling::div/a";
            string xPathDiv     = @"//div[starts-with(normalize-space(text()),'Authorized Capital')]/following-sibling::div";


            var path = Path.GetFullPath(@"./../../../SourceFiles/commonStockProfileEn.html");

            if (!File.Exists(path))
            {
                throw new FileNotFoundException(path);
            }

            var doc = new HtmlDocument();

            doc.Load(path);

            var rootDoc = doc.DocumentNode.SelectNodes(rootNodeDoc).FirstOrDefault();

            var info = new CommonStockInfo()
            {
                Id = 1, Symbol = "A",
            };

            info.SecurityName      = SelectNode(rootDoc, xPathStrong, "Company Name");
            info.Address           = SelectNode(rootDoc, xPathStrong, "Address");
            info.Telephone         = SelectNode(rootDoc, xPathStrong, "Telephone");
            info.Fax               = SelectNode(rootDoc, xPathStrong, "Fax");
            info.WebSite           = SelectNode(rootDoc, xPathStrongA, "Website");
            info.Market            = SelectNode(rootDoc, xPathStrong, "Market");
            info.Industry          = SelectNode(rootDoc, xPathStrong, "Industry");
            info.Sector            = SelectNode(rootDoc, xPathStrong, "Sector");
            info.FirstTradeDate    = ConvertToDateTime(SelectNode(rootDoc, xPathStrong, "First Trade Date"), "dd MMM yyyy");
            info.ParValue          = ConvertToDecimal(SelectNode(rootDoc, xPathStrong, "Par Value"));
            info.AuthorizedCapital = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Authorized Capital"));
            info.PaidUpCapital     = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Paid-up Capital"));
            info.ListedShare       = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Listed Share"));
            info.PaidUpStock       = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Paid-up Stock"));

            string result = JsonConvert.SerializeObject(info);

            _output.WriteLine(result);
            Console.WriteLine(result);
        }
Ejemplo n.º 3
0
        public CommonStockInfo SearchStockProfile(SearchStockProfileCriteria criteria)
        {
            CommonStockInfo info = new CommonStockInfo()
            {
                Id = criteria.StockId, Symbol = criteria.Symbol
            };
            var html = string.Format(htmlTarget, criteria.Symbol);

            HtmlWeb web = new HtmlWeb();

            var htmlDoc = web.Load(html);

            var rootDoc = GetRootNode(htmlDoc);

            if (rootDoc != null)
            {
                info.SecurityName      = SelectNode(rootDoc, xPathStrong, "Company Name");
                info.Address           = SelectNode(rootDoc, xPathStrong, "Address");
                info.Telephone         = SelectNode(rootDoc, xPathStrong, "Telephone");
                info.Fax               = SelectNode(rootDoc, xPathStrong, "Fax");
                info.WebSite           = SelectNode(rootDoc, xPathStrongA, "Website");
                info.Market            = SelectNode(rootDoc, xPathStrong, "Market");
                info.Industry          = SelectNode(rootDoc, xPathStrong, "Industry");
                info.Sector            = SelectNode(rootDoc, xPathStrong, "Sector");
                info.FirstTradeDate    = ConvertToDateTime(SelectNode(rootDoc, xPathStrong, "First Trade Date"), "dd MMM yyyy");
                info.ParValue          = ConvertToDecimal(SelectNode(rootDoc, xPathStrong, "Par Value"));
                info.AuthorizedCapital = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Authorized Capital"));
                info.PaidUpCapital     = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Paid-up Capital"));
                info.ListedShare       = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Listed Share"));
                info.PaidUpStock       = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Paid-up Stock"));
            }



            return(info);
        }
Ejemplo n.º 4
0
 public static Props Props(CommonStockInfo commonStork, IActorRef eodStocksActor)
 {
     return(Akka.Actor.Props.Create(() => new CommonStockActor(commonStork, eodStocksActor)));
 }