protected override void ExecuteTask(VcssTaskModel vcssTask) { string username = vcssTask.VcssTaskInfo.auth_token.Split('-')[0]; string password = vcssTask.VcssTaskInfo.auth_token.Split('-')[1]; string requestURL = String.Format(vcssTask.VcssTaskInfo.url, username, ComputeHash(password)); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestURL); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(stream)) { var strResponse = reader.ReadToEnd(); dynamic result = JsonConvert.DeserializeObject <dynamic>(strResponse); if (result.Estado.ToString() != "Error") { VcssTaskManagerService.UpdateBOLSARAuthToken(result.Resultado.ToString()); } else { VcssTaskManagerService.Log(vcssTask.VcssTaskInfo.name, vcssTask.data, vcssTask.scheduled_time, "Running", strResponse, DateTime.Now); } } } }
public bool RunTask(VcssTaskModel vcssTask) { VcssTaskCanExecuteResult canExecute = VcssTaskCanExecuteResult.EMPTY; try { VcssTaskManagerService.Log(vcssTask.VcssTaskInfo.name, vcssTask.data, vcssTask.scheduled_time, "Run", "", DateTime.Now); canExecute = this.CanExecute(vcssTask); if (canExecute == VcssTaskCanExecuteResult.Execute) { this.ExecuteTask(vcssTask); this.UpdateTaskExecutedTime(vcssTask); VcssTaskManagerService.DeleteTask(vcssTask); return(true); } else { VcssTaskManagerService.Log(vcssTask.VcssTaskInfo.name, vcssTask.data, vcssTask.scheduled_time, "Running", canExecute.ToString(), DateTime.Now); return(false); } } catch (Exception ex) { VcssTaskManagerService.Log(vcssTask.VcssTaskInfo.name, "Info -> CanExecute: " + canExecute.ToString() + " -> Data: " + vcssTask.data, vcssTask.scheduled_time, "Run ERROR", ex.Message, DateTime.Now); return(false); } }
protected override void ExecuteTask(VcssTaskModel vcssTask) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTask.VcssTaskInfo.Market.utc_offset); ReportData_Generator generator = new ReportData_Generator(); generator.GenerateReportData(vcssTask.data); }
protected override VcssTaskCanExecuteResult CanExecute(VcssTaskModel vcssTask) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTask.VcssTaskInfo.Market.utc_offset); if (marketTime.TimeOfDay.Hours == 5 && marketTime.DayOfWeek != DayOfWeek.Saturday && marketTime.DayOfWeek != DayOfWeek.Sunday && !HolidayService.IsHoliday(vcssTask.VcssTaskInfo.market_id.Value, marketTime)) { return(VcssTaskCanExecuteResult.Execute); } return(VcssTaskCanExecuteResult.InvalidTime); }
public static void DeleteTask(VcssTaskModel vcssTask) { using (ctaDBEntities entities = new ctaDBEntities()) { VcssTask task = entities.VcssTasks.Where(t => t.Id == vcssTask.Id).FirstOrDefault(); if (task != null) { entities.VcssTasks.Remove(task); entities.SaveChanges(); } } }
protected override VcssTaskCanExecuteResult CanExecute(VcssTaskModel vcssTask) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTask.VcssTaskInfo.Market.utc_offset); if (marketTime.DayOfYear != vcssTask.scheduled_time.DayOfYear) { return(VcssTaskCanExecuteResult.InvalidTime); } if (String.IsNullOrEmpty(vcssTask.data)) { return(VcssTaskCanExecuteResult.InvalidData); } return(VcssTaskCanExecuteResult.Execute); }
protected override void ExecuteTask(VcssTaskModel vcssTask) { string[] jsonData = vcssTask.data.Split('#'); int stockId = int.Parse(jsonData[1]); List <jsonmdlEODHistorical> data = JsonConvert.DeserializeObject <List <jsonmdlEODHistorical> >(jsonData[0]); List <IHistoricalQuote> historicalQuotes = data.Select(h => new HistoricalQuoteEOD() { adj_close = h.AdjustedClose, closing = h.Close, date_round = h.Date, maximun = h.High, minimun = h.Low, opening = h.Open, stock_id = stockId, volume = h.Volume }).ToList <IHistoricalQuote>(); QuotesService.SaveHistoricalQuote(historicalQuotes); }
protected override void ExecuteTask(VcssTaskModel vcssTask) { DateTime marketDate = DateTime.UtcNow.AddHours(vcssTask.VcssTaskInfo.Market.utc_offset).Date; Dictionary <string, int> symbols = StockService.GetStocks().Where(s => s.market_id == 1 && s.type_id == 4 && s.active).ToDictionary(s => s.symbol, s => s.Id); List <jsonmdlBOLSARIndex> data = JsonConvert.DeserializeObject <List <jsonmdlBOLSARIndex> >(vcssTask.data).Where(x => symbols.ContainsKey(x.Symbol)).ToList(); //INTRADIARY DATA List <IRealTimeQuote> realTimeQuotes = data.Select(rt => new RealTimeQuoteBOLSAR() { ask = 0, ask_size = 0, bid = 0, bid_size = 0, change = rt.Tendencia, change_percent = rt.Variacion, datetime = this.GetIntradiaryDateTime(marketDate, rt.strHora), last_trade_date = DateTime.Now, last_trade_price = rt.Ultimo, last_trade_size = 0, last_trade_time = "", opening = rt.Ultimo, prev_closing = rt.Apertura, stock_id = symbols[rt.Symbol] }).ToList <IRealTimeQuote>(); //HISTORICAL DATA List <IHistoricalQuote> historicalQuotes = data.Select(h => new HistoricalQuoteBOLSAR() { adj_close = 0, closing = h.Ultimo, date_round = marketDate, maximun = h.Maximo_Valor, minimun = h.Minimo_Valor, opening = h.Apertura, stock_id = symbols[h.Symbol], volume = 0 }).ToList <IHistoricalQuote>(); QuotesService.SaveRealTimeQuote(realTimeQuotes); QuotesService.SaveHistoricalQuote(historicalQuotes); }
protected override void ExecuteTask(VcssTaskModel vcssTask) { DateTime marketDate = DateTime.UtcNow.AddHours(vcssTask.VcssTaskInfo.Market.utc_offset).Date; Dictionary <string, int> symbols = StockService.GetStocks().Where(s => s.market_id == 2 && s.active).ToDictionary(s => s.symbol + ".US", s => s.Id); IEnumerable <jsonmdlEODRealTime> data = JsonConvert.DeserializeObject <List <jsonmdlEODRealTime> >(vcssTask.data).Where(rt => symbols.ContainsKey(rt.Code)); //INTRADIARY DATA List <IRealTimeQuote> realTimeQuotes = data.Select(rt => new RealTimeQuoteEOD() { ask = 0, ask_size = 0, bid = 0, bid_size = 0, change = 0, change_percent = rt.Change, datetime = this.GetIntradiaryDateTime(vcssTask.VcssTaskInfo.Market.utc_offset, rt.Timestamp), last_trade_date = DateTime.Now, last_trade_price = rt.Close, last_trade_size = 0, last_trade_time = "", opening = rt.Close, prev_closing = rt.PreviousClose, stock_id = symbols[rt.Code] }).ToList <IRealTimeQuote>(); //HISTORICAL DATA List <IHistoricalQuote> historicalQuotes = data.Select(h => new HistoricalQuoteEOD() { adj_close = 0, closing = h.Close, date_round = marketDate, maximun = h.High, minimun = h.Low, opening = h.Open, stock_id = symbols[h.Code], volume = h.Volume }).ToList <IHistoricalQuote>(); QuotesService.SaveRealTimeQuote(realTimeQuotes); QuotesService.SaveHistoricalQuote(historicalQuotes); }
protected override VcssTaskCanExecuteResult CanExecute(VcssTaskModel vcssTask) { return(VcssTaskCanExecuteResult.Execute); }
protected void UpdateTaskExecutedTime(VcssTaskModel vcssTask) { VcssTaskManagerService.UpdateExecutedTime(vcssTask.VcssTaskInfo); }
protected abstract void ExecuteTask(VcssTaskModel vcssTask);
protected abstract VcssTaskCanExecuteResult CanExecute(VcssTaskModel vcssTask);
protected override void ExecuteTask(VcssTaskModel vcssTask) { QuotesService.ClearIntradiaryDataByMarketID(vcssTask.VcssTaskInfo.market_id.Value); }