void AddingBonusesStackVariousTest() { Bonus bonus1 = new Bonus(12, sourceFactory.Create("name", true)); Bonus bonus2 = new Bonus(4, sourceFactory.Create("otherName", false)); BonusCollection bonusCollection = new BonusCollection(); bonusCollection.Add(bonus1); bonusCollection.Add(bonus2); Assert.Equal(bonus1.NumericValue + bonus2.NumericValue, bonusCollection.Sum()); }
// GET: api/News/5 public List <News> Get(int id) { BaseSource newsSource; NewsHost newsPublisher = new NewsHost(); // This code can be changed lateron to Factory patten inside Business if (id == 0) { newsSource = SourceFactory.Create("Internal"); newsSource.SourceId = 0; newsSource.News = newsManager.GetNewsByCategory((short)NewsCategoryType.Travel).ToList(); // Added filter to see diff results return(newsPublisher.Publish(newsSource)); } else if (id == 1) { newsSource = SourceFactory.Create("Google"); newsSource.SourceId = 1; newsSource.News = newsManager.GetNewsByCategory((short)NewsCategoryType.Sports).ToList(); // Added filter to see diff results return(newsPublisher.Publish(newsSource)); } else if (id == 2) { newsSource = SourceFactory.Create("PTI"); newsSource.SourceId = 2; newsSource.News = newsManager.GetNewsByCategory((short)NewsCategoryType.Political).ToList(); // Added filter to see diff results return(newsPublisher.Publish(newsSource)); } return(null); }
public override Stream Generate(JToken jReport, Stream bookStream, JToken reportContext) { var dataSource = dataSourceFactory.Create(jReport["dataSources"].FirstOrDefault(), reportContext); var variables = this.GetVariables(jReport["variables"], reportContext); var report = new XmlSerializer(typeof(Report)).Deserialize(bookStream) as Report; var reportDesc = report.DeserializeReportDesc(); var dataSets = reportDesc.DATASET .ToDictionary(x => x.NAME, x => new SqlQueryDataReader(dataSource, x.SQL, variables, timeout) as IDataReader); var datas = dataSets .ToDictionary(x => x.Key.ToLower(), x => x.Value.GetData().ToListDictionaryAdapt()); var reportBook = report.DeserializeReportTemplate(); FillBookData(variables, datas, reportBook, reportDesc.DATASET); var reportStream = new MemoryStream(); reportBook.SaveAs(reportStream); reportStream.Position = 0; return(reportStream); }
public List <News> Publish(BaseSource source) { List <News> pubNews = new List <News>(); NewsManager newsManager = new NewsManager(); BaseSource adSource = SourceFactory.Create("Advert"); // News = 6 or Hih Prio 8 int pCount = 8; int nCount = 6, aCount = 2; int hCount = source.News.Where(h => h.Priority == NewsPriority.High).Count(); if (hCount > 6 && hCount == 8) { if (source.News.Count > 6) { nCount = 8; } } else if (hCount > 6 && hCount < 8) { if (source.News.Count > 6) { nCount = 7; } } List <News> news = source.News.Take(nCount).ToList(); foreach (var item in news) { pubNews.Add(item); } // Advertisements = 2 if (nCount != 8) { adSource.News = newsManager.GetNewsByCategory((short)NewsCategoryType.Advertisements).ToList(); // Added filter to see diff results aCount = pCount - nCount; List <News> advt = adSource.News.Take(aCount).ToList(); foreach (var item in advt) { pubNews.Add(item); } } bool success = source.Subscribe(pubNews); if (success) { return(source.GetNews()); } return(null); }
public ActionResult <IEnumerable <object> > GetSelectData( [FromForm(Name = "dataSource")] string dataSourceString, [FromForm(Name = "context")] string contextJson, [FromForm(Name = "query")] string query) { var dataSource = JToken.Parse(dataSourceString); var reportContext = JToken.Parse(contextJson); var source = sourceFactory.Create(dataSource, reportContext); var dataReader = dataReaderFactory.CreateSqlQueryDataSet(query, source); return(dataReader.GetData().ToListDictionaryAdapt()); }
public override Stream Generate(JToken jReport, Stream bookStream, JToken reportContext) { var dataSources = jReport["dataSources"] .ToDictionary(x => x["name"].ToString(), x => dataSourceFactory.Create(x, reportContext)); var variables = this.GetVariables(jReport["variables"], reportContext); var dataSets = jReport["dataSets"] .ToDictionary(x => x["name"].ToString(), x => dataSetFactory.Create(x, dataSources, variables)); var datas = dataSets .ToDictionary(x => x.Key.ToLower(), x => x.Value.GetData().ToListDictionaryAdapt()); return(this.GenerateClosedXmlReport(bookStream, datas)); }
/// <summary>Создаёт экземпляр <see cref="IWorker" /> для обработки указанных потоков</summary> /// <param name="Input">Входой поток</param> /// <param name="Output">Выходной поток</param> public IWorker BuildFor(Stream Input, Stream Output) { return(DegreeOfParallelism switch { 1 => new SingleThreadWorker( new FileProcessWorkerRepetitiveRoutine( SourceFactory.Create(Input), SinkFactory.Create(Output), Processor)), _ => new MultiThreadWorker( new FileProcessWorkerRepetitiveRoutine( SourceFactory.Create(Input).Locked(), SinkFactory.Create(Output).Locked(), Processor), DegreeOfParallelism) });
public Main() { _settingsManager = Factories.CreateSettingsManager(); this.seconds = _settingsManager.GetSettingValue(AppSettingsKey.Seconds).ToInt(); this._timeManager = Factories.CreateTimeManager(_settingsManager.GetSettingValue(AppSettingsKey.Open), _settingsManager.GetSettingValue(AppSettingsKey.Close)); _logger = LoggerFactory.Create(_settingsManager.LogFilePath); string siteUrl = _settingsManager.GetSettingValue(AppSettingsKey.SiteUrl); string adminUser = _settingsManager.GetSettingValue(AppSettingsKey.Admin); string adminPassword = _settingsManager.GetSettingValue(AppSettingsKey.AdminPassword); string dbKey = _settingsManager.GetSettingValue(AppSettingsKey.DBKey); this._apiService = ServiceFactory.CreateApiService(siteUrl, adminUser, adminPassword, dbKey); string hubUrl = _settingsManager.GetSettingValue(AppSettingsKey.HubUrl); string quoteKey = _settingsManager.GetSettingValue(AppSettingsKey.QuoteKey); _hubManager = Factories.CreateHubManager(hubUrl, quoteKey); // init source string provider = _settingsManager.GetSettingValue(AppSettingsKey.Provider); string sid = _settingsManager.GetSettingValue(AppSettingsKey.SID); string password = _settingsManager.GetSettingValue(AppSettingsKey.Password); this._source = SourceFactory.Create(provider, sid, password); this._source.ExceptionOccured += Source_ExceptionOccured; this._source.ActionExecuted += Source_ActionExecuted; this._source.NotifyStockTick += Source_NotifyStockTick; this._source.NotifyFuturesTick += Source_NotifyFuturesTick; Thread.Sleep(1500); InitializeComponent(); }