/// <summary> /// Check if page has place for news/advertisement /// </summary> /// <param name="page"></param> /// <returns></returns> private bool IsPageHasPlaceForNews(NewsPaperPage page) { int newsCount = page.NewsArticle.Count; int advCount = page.Advertisement.Count; if (newsCount + advCount > 4) { return(false); } return(true); }
/// <summary> /// Create news paper pages with news items /// </summary> /// <param name="paper"></param> /// <param name="page"></param> public void AddPagesToNewsPaper(NewsPaper paper, NewsPaperPage page) { try { int pageCounter = 1; if (this.lstNews == null || this.lstNews.Count() == 0) { throw new Exception("No content for news papaer"); } foreach (var objNews in lstNews) { page.PageNumber = pageCounter; if (!IsPageHasPlaceForNews(page)) { pageCounter++; page = new NewsPaperPage(); page.PageNumber = pageCounter; paper.NewsPaperPages.Add(page); } if (page.NewsArticle.Count >= MAX_NEWS_PER_PAGE) // Check if all news items are placed { if (objNews.NewsPriority == NewsPriority.High) // Check if any High priority news is still present to be added { page.NewsArticle.Add(objNews); } else { pageCounter++; page = new NewsPaperPage(); page.PageNumber = pageCounter; paper.NewsPaperPages.Add(page); page.NewsArticle.Add(objNews); } } else if (page.NewsArticle.Count < MAX_NEWS_PER_PAGE) { page.NewsArticle.Add(objNews); } } } catch (Exception ex) { throw; } }
public void Test_checkNewsPaperPagesCompiled() { helper = new PaperGeneraterHelper(); objNewsPaper = new NewsPaper(DateTime.Now); NewsPaperPage objPage = new NewsPaperPage(); objNewsPaper.NewsPaperPages.Add(objPage); helper.lstNews = GetNews(); helper.lstAdvertise = GetAdvertisements(); helper.AddPagesToNewsPaper(objNewsPaper, objPage); helper.AddAddvertisementToNewsPaper(objNewsPaper); Assert.IsNotNull(objNewsPaper); Assert.IsNotNull(objNewsPaper.NewsPaperPages); }
public void Test_checkNewsPaperHasMaximumHighPiorityNews() { helper = new PaperGeneraterHelper(); objNewsPaper = new NewsPaper(DateTime.Now); NewsPaperPage objPage = new NewsPaperPage(); objNewsPaper.NewsPaperPages.Add(objPage); helper.lstNews = GetNewsAllHighPriority(); helper.lstAdvertise = GetAdvertisements(); helper.AddPagesToNewsPaper(objNewsPaper, objPage); helper.AddAddvertisementToNewsPaper(objNewsPaper); Assert.IsNotNull(objNewsPaper); Assert.IsNotNull(objNewsPaper.NewsPaperPages); Assert.IsTrue(objNewsPaper.NewsPaperPages[0].Advertisement.Count == 0); }
public NewsPaper GenerateNewsPaper() { try { NewsPaper objPaper = NewsPaper.GetInstance(DateTime.Now); NewsPaperPage objPage = new NewsPaperPage(); objPaper.NewsPaperPages.Add(objPage); helper = new PaperGeneraterHelper(); helper.AddPagesToNewsPaper(objPaper, objPage); helper.AddAddvertisementToNewsPaper(objPaper); return(objPaper); } catch (Exception ex) { throw; } }