Exemple #1
0
 private void send(FeedEnum feedEnum, int numEvents)
 {
     for (int i = 0; i < numEvents; i++)
     {
         _epService.EPRuntime.SendEvent(new MarketDataEvent("CSC", feedEnum));
     }
 }
        public void Run()
        {
            Log.Info(".call Thread " + Thread.CurrentThread + " starting");

            try
            {
                Array enumValues = Enum.GetValues(typeof(FeedEnum));

                while (!_isShutdown)
                {
                    int      nextFeed = Math.Abs(_random.Next() % 2);
                    FeedEnum feed     = (FeedEnum)enumValues.GetValue(nextFeed);
                    if (_rateDropOffFeed != feed)
                    {
                        _engine.EPRuntime.SendEvent(new MarketDataEvent("SYM", feed));
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error("Error in send loop", ex);
            }

            Log.Info(".call Thread " + Thread.CurrentThread + " done");
        }
Exemple #3
0
        /// <summary>
        /// Grab the feed url based on the feed enum from configuration.
        /// </summary>
        /// <param name="feed">feed enum</param>
        /// <param name="log">logger instance</param>
        /// <returns>feed url</returns>
        public string GetFeedURL(FeedEnum feed, ILogger log)
        {
            string feedURL = Environment.GetEnvironmentVariable(feed.ToString());

            log.LogInformation("Grabbed FeedURL: " + feedURL);

            return(feedURL);
        }
Exemple #4
0
        /// <summary>
        /// Calculate records to exclude for pagination. Get archived responses from data.
        /// </summary>
        /// <param name="pageSize">entries per page</param>
        /// <param name="pageNumber">current page</param>
        /// <param name="feed">feed selection</param>
        /// <param name="log">logger instance</param>
        /// <returns>paginated archived feed responses</returns>
        public List <FeedResponse> GetArchiveFeed(int pageSize, int pageNumber, FeedEnum feed, ILogger log)
        {
            int excludeRecords = (pageNumber * pageSize) - pageSize;

            List <FeedResponse> archivedResponses = _feedData.GetArchiveFeed(pageSize, excludeRecords, feed, log);

            return(archivedResponses);
        }
Exemple #5
0
        private void send(FeedEnum feedEnum, int numEvents)
        {
            var sender = _runtime.EventService.GetEventSender(typeof(MarketDataEvent).Name);

            for (var i = 0; i < numEvents; i++)
            {
                sender.SendEvent(new MarketDataEvent("CSC", feedEnum));
            }
        }
Exemple #6
0
        /// <summary>
        /// Get the archived feed responses for given feed parameters. Pagination applied to query.
        /// </summary>
        /// <param name="pageSize">entries per page</param>
        /// <param name="excludeRecords">records to exclude from pagination</param>
        /// <param name="feed">feed to find</param>
        /// <param name="log">logger instance</param>
        /// <returns>archived feed responses</returns>
        public List <FeedResponse> GetArchiveFeed(int pageSize, int excludeRecords, FeedEnum feed, ILogger log)
        {
            List <FeedResponse> archivedFeedResponses = _cosmosContainer.GetItemLinqQueryable <FeedResponse>(true)
                                                        .Where(fr => fr.Feed == feed)
                                                        .Skip(excludeRecords)
                                                        .Take(pageSize).ToList();

            log.LogInformation("Grabbed {0} archived feeds.", archivedFeedResponses.Count);

            return(archivedFeedResponses);
        }
Exemple #7
0
        private void assertReceived(FeedEnum feedEnum, double average, long count)
        {
            Assert.IsTrue(_listener.IsInvoked);
            Assert.AreEqual(1, _listener.LastNewData.Length);
            EventBean eventBean = _listener.LastNewData[0];

            Assert.AreEqual(feedEnum, eventBean["feed"]);
            Assert.AreEqual(average, eventBean["avgCnt"]);
            Assert.AreEqual(count, eventBean["feedCnt"]);
            _listener.Reset();
        }
Exemple #8
0
        public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "POST", Route = nameof(Archive))] HttpRequest request, ILogger log)
        {
            try
            {
                log.LogInformation("Requesting Archived ESPN Feed!");

                //Parse query string parameters, default paging size if not provided.
                FeedEnum feed       = Enum.Parse <FeedEnum>(request.Query[nameof(feed)]);
                int      pageNumber = request.Query.ContainsKey(nameof(pageNumber)) ? int.Parse(request.Query[nameof(pageNumber)]) : 1;
                int      pageSize   = request.Query.ContainsKey(nameof(pageSize)) ? int.Parse(request.Query[nameof(pageSize)]) : 10;

                if (feed == 0)
                {
                    throw new ArgumentNullException();
                }

                log.LogInformation("Grabbed query string from " + nameof(HttpRequest) + ".");

                List <FeedResponse> archivedResponses = _feedLogic.GetArchiveFeed(pageSize, pageNumber, feed, log);

                return(new OkObjectResult(archivedResponses));
            }
            catch (ArgumentNullException argsNullEx)
            {
                log.LogError(argsNullEx, argsNullEx.Message);

                return(new BadRequestObjectResult("Please enter a valid Feed!"));
            }
            catch (CosmosException cosmosEx)
            {
                log.LogError(cosmosEx, cosmosEx.Message);

                return(new BadRequestObjectResult("Unable to get archived data: " + cosmosEx.Message));
            }
            catch (JsonReaderException jsonReaderEx)
            {
                log.LogError(jsonReaderEx, jsonReaderEx.Message);

                return(new BadRequestObjectResult("Unable to read the malformed request!"));
            }
            catch (JsonSerializationException jsonSerializationEx)
            {
                log.LogError(jsonSerializationEx, jsonSerializationEx.Message);

                return(new BadRequestObjectResult("Unable to deserialize the request!"));
            }
            catch (Exception ex)//unhandled exception, return 400 with message instead of vague 500 server error.
            {
                log.LogError(ex, ex.Message);

                return(new BadRequestObjectResult("An unexpected error occured: " + ex.Message));
            }
        }
Exemple #9
0
        public static List <FeedResponse> GetFeedResponses(FeedEnum feed, int num)
        {
            List <FeedResponse> responses = new List <FeedResponse>();

            for (int i = 0; i < num; i++)
            {
                responses.Add(new FeedResponse()
                {
                    Description = "desc" + i,
                    Feed        = feed,
                    id          = i.ToString(),
                    Link        = "http://" + i + ".com",
                    Title       = "title" + i
                });
            }

            return(responses);
        }
Exemple #10
0
 public FeedEvent(FeedEnum feed, String symbol, double price)
 {
     this.feed   = feed;
     this.symbol = symbol;
     this.price  = price;
 }
Exemple #11
0
 public MarketDataEvent(String symbol, FeedEnum feed)
 {
     Symbol = symbol;
     Feed   = feed;
 }