Exemple #1
0
        public EarningsAnnouncementModule(IEarningsAnnouncementBroker broker)
            : base("/earningsannouncements")
        {
            this.RequiresAuthentication();

            Get("/", async(_, token) =>
            {
                var request = this.Bind <EarningsAnnouncementRequest>();

                if (request == null)
                {
                    return(HttpStatusCode.BadRequest);
                }

                return(await broker.Request(request).ConfigureAwait(false));
            });

            Get("/datasources", _ => broker.DataSources.Keys.ToList());
        }
Exemple #2
0
        public void Execute(IJobExecutionContext context)
        {
            _logger = LogManager.GetCurrentClassLogger();

            JobDataMap dataMap = context.JobDetail.JobDataMap;
            EarningsUpdateJobSettings settings;

            try
            {
                settings = JsonConvert.DeserializeObject <EarningsUpdateJobSettings>((string)dataMap["settings"]);
            }
            catch (Exception e)
            {
                _logger.Error(e, "Failed to deserialize data update job settings");
                return;
            }

            _logger.Info($"EarningsAnnouncement Update job {settings.Name} triggered.");

            _broker.Error += _broker_Error;

            int totalCount = 0;
            var request    = GenerateRequests(settings);

            try
            {
                var releases = _broker.Request(request).Result; //no async support in Quartz, and no need for it anyway, this runs on its own thread
                totalCount += releases.Count;
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Message);
            }
            _logger.Trace($"EarningsAnnouncement update job downloaded {totalCount} items");

            JobComplete();
        }