public static async void MoChangeLogs(SoraMessage e, string type) { try { var articles = new ArticleList(type); if (articles.Articles.Count > 0) { await e.Reply(new StringBuilder() .AppendLine(articles.Title) .Append(string.Join(Environment.NewLine, articles.Articles.Select(x => x.Key + Environment.NewLine + " " + x.Value).Take(5))) .ToString()); } else { await e.ReplyToOriginal("无效的类型 (仅支持 beta/release/snapshot)"); } } catch (Exception ex) { await e.ReplyToOriginal(new StringBuilder() .AppendLine("获取文章列表时发生错误") .Append(ex.GetFormatString())); } }
public static async void FindMCSnapshot(SoraMessage e, string version) { var vm = Regex.Match(version.Trim(), @"^(?<mainVersion>[^-]+)(?<sub>-(?<subType>pre|rc)(?<subNum>\d+))?$"); var mainVersion = vm.Groups["mainVersion"].Value; var subType = "snapshot"; var subNum = ""; if (vm.Groups["sub"].Success && !string.IsNullOrWhiteSpace(vm.Groups["sub"].Value)) { subType = vm.Groups["subType"].Value; subNum = vm.Groups["subNum"].Value; } string changelog = null; var articles = new ArticleList("snapshot"); var article = articles.Articles.Where(x => x.Key.Contains(mainVersion) && (subType == "snapshot" || ((subType == "pre" ? x.Key.Contains("PRE-RELEASE") : subType == "rc" && x.Key.Contains("Release Candidate")) && x.Key.Contains(subNum)))).FirstOrDefault(); if (!string.IsNullOrEmpty(article.Key)) { changelog = article.Value; } if (!string.IsNullOrEmpty(changelog)) { MoChangeLogsFormat(e, changelog); } else { await e.Reply($"未能查找到 {version} 的更新日志"); } }
private void btnViewArticle_Click(object sender, RoutedEventArgs e) { ArticleList window = new ArticleList(); window.Show(); this.Close(); }
public ActionResult Deleted(int id) { ArticleList articleList = new ArticleList(); articleList.Delete(id); return(RedirectToAction("Index", "Admin")); }
public async void GetPageAmount() { if (_isInDesignMode) { for (int i = 1; i <= 3; i++) { RelayCommand <int> rc = new RelayCommand <int>((x) => { }); NewsPageNavCommandList.Add(new PageNavigationCommand(i.ToString(), rc)); } return; } int pageAmount = 0; pageAmount = await Resources.APIWebTeam.NewsManagment.GetTotalPages(); for (int i = 1; i <= pageAmount; i++) { RelayCommand <int> rc = new RelayCommand <int>((x) => { IsLoading = true; RaisePropertyChanged("IsLoading"); ArticleList.Clear(); RaisePropertyChanged("ArticleList"); GetArticlesInPage(x); }); NewsPageNavCommandList.Add(new PageNavigationCommand(i.ToString(), rc)); } RaisePropertyChanged("NewsPageNavCommandList"); }
public async Task Create_InvalidObject_ReturnsNull() { //Arrange var testArticles = ArticleList.GetDefaultList(); var articleDbSetMock = testArticles.AsQueryable().BuildMockDbSet(); var dataContextMock = new Mock <CommandDbContext>(); dataContextMock.Setup(m => m.Articles).Returns(articleDbSetMock.Object); var articleRepository = new Mock <IArticleRepository>(); var unitOfWorkMock = new Mock <IUnitOfWork>(); unitOfWorkMock.Setup(uow => uow.ArticleRepository).Returns(articleRepository.Object); var articleForCreation = new ArticleForCreationDto(); var createArticleCommand = new CreateArticleCommand(unitOfWorkMock.Object, _writeMapper); unitOfWorkMock.Setup(uow => uow.Commit()).Returns(Task.FromResult(false)); //Act var result = await createArticleCommand.Execute(articleForCreation); //Assert articleRepository.Verify(r => r.Add(It.IsAny <Article>()), Times.Once); Assert.That(result, Is.Null); }
//文章列表 public ActionResult List(string keyword1 = "", string keyword2 = "", int page = 1) { string menuKey = ""; if (keyword2 == "") { menuKey = keyword1; } else { menuKey = keyword1 + "/" + keyword2; } MyResult result = new MyResult(); int count = Convert.ToInt32(ConfigurationManager.AppSettings["articleListCount"]); ArticleDAL dal = new ArticleDAL(); result = dal.getArticleList(menuKey, count, page); ArticleList <Article> model = new ArticleList <Article>(); model.head = ConvertHelper.FillModel <Head>(((DataTable)result.obj).Rows[0]); Paging <Article> paging = new Paging <Article>(); paging.list = ConvertHelper.FillModelList <Article>((DataTable)result.obj2); paging.totalPages = Convert.ToInt32(result.obj3); model.paging = paging; ViewBag.page = page; ViewBag.menuKey = menuKey; return(View(model)); }
// GET: Articles/Details/5 public ActionResult Details(int?id) { ViewModelResult model = new ViewModelResult(); try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CommentList cmtList = new CommentList(); var comments = cmtList.getListComment(id); ArticleList art = new ArticleList(); var details = art.getDetailArticle(id); model = new ViewModelResult { articleDetail = details, listComment = comments }; } catch (Exception e) { CommonUse.WriteLogError(e); } return(View(model)); }
public void SetUp() { _articlesRepositoryMock = new Mock <IReadOnlyArticleRepository>(); var articleParams = new ArticleParams(); _testArticles = ArticleList.GetShortList().AsEnumerable(); }
/// <summary> /// Get Articles From Feed /// </summary> /// <param name="feedUrl"></param> /// <returns></returns> public static async Task <ArticleList> GetArticleListFromFeedAsync(string feedUrl) { var syncClient = new SyndicationClient(); var lista = new ArticleList(); if (InternetConectivity) { var feed = await syncClient.RetrieveFeedAsync(new Uri(feedUrl)); foreach (var art in feed.Items) { var content = CreateContent(art.NodeValue); lista.Add(new Article() { Title = art.Title.Text, Content = content, Summary = CreateSummary(art.Summary, content), ImgUri = Find1stImageFromHtml(content) }); } } else { throw new Exception(INTERNET_REQUIRED); } return(lista); }
public void AddArticles(params Article[] article) { if (article != null) { ArticleList.AddRange(article); } }
public static async Task <ArticleList> GetArticleListFromFeedAsync(string feedUrl) { var syncClient = new SyndicationClient(); var lista = new ArticleList(); var feed = await syncClient.RetrieveFeedAsync(new Uri(feedUrl)); foreach (var art in feed.Items) { var content = CreateContent(art.NodeValue); { var newArticle = new Article() { Title = art.Title.Text, Content = content, Summary = CreateSummary(art.Summary, content), ImgUri = Find1stImageFromHtml(content) }; lista.Add(newArticle); } } return(lista); }
/// <summary> /// Get Articles From Feed /// </summary> /// <param name="feedUrl"></param> /// <returns></returns> public static async Task<ArticleList> GetArticleListFromFeedAsync(string feedUrl) { var syncClient = new SyndicationClient(); var lista = new ArticleList(); if (InternetConectivity) { var feed = await syncClient.RetrieveFeedAsync(new Uri(feedUrl)); foreach (var art in feed.Items) { var content = CreateContent(art.NodeValue); lista.Add(new Article() { Title = art.Title.Text, Content = content, Summary = CreateSummary(art.Summary, content), ImgUri = Find1stImageFromHtml(content) }); } } else { throw new Exception(INTERNET_REQUIRED); } return lista; }
public IPagedList <Article> GetArticles(ArticleList page, ArticleSearchModel model) { var query = _session.QueryOver <Article>() .Where(a => a.Parent == page); if (!String.IsNullOrEmpty(model.Category)) { Tag tagAlias = null; query = query.JoinAlias(article => article.Tags, () => tagAlias).Where(() => tagAlias.Name.IsInsensitiveLike(model.Category, MatchMode.Exact)); } if (model.Month.HasValue) { query = query.Where( article => article.PublishOn != null && article.PublishOn.Value.Month == model.Month); } if (model.Year.HasValue) { query = query.Where( article => article.PublishOn != null && article.PublishOn.Value.Year == model.Year); } return(query.OrderBy(x => x.PublishOn).Desc.Paged(model.Page, page.PageSize)); }
//[Ignore("Problem with generic in setup")] public void Update_WithChangedEntity_PerformsAContextUpdate() { //Arrange var testArticles = ArticleList.GetDefaultList(); var articleDbSetMock = testArticles.AsQueryable().BuildMockDbSet(); var dataContextMock = new Mock <CommandDbContext>(); dataContextMock.Setup(m => m.Articles).Returns(articleDbSetMock.Object); var articleRepository = new ArticleRepository(dataContextMock.Object); var updatedArticle = testArticles.First(); updatedArticle.SetCode("1st article updated"); var isContextUpdateCalled = false; //_dataContextMock.Setup(m => m.Set<Article>()).Returns(_articleDbSetMock.Object).Verifiable(); dataContextMock.Setup(m => m.Update(It.IsAny <object>())).Callback(() => isContextUpdateCalled = true); //Act articleRepository.Update(updatedArticle); //Assert //_dataContextMock.Verify(m => m.Update(updatedArticle), Times.Once); //doesn't work with generic type Assert.That(isContextUpdateCalled, Is.True); }
public void Reload() { System.Threading.ThreadPool.QueueUserWorkItem(delegate { try { ShowLoading(StringResources.captionInformation, StringResources.msgLoading); var articleList = Factory.Resolve <IBaseDataDS>().SearchArticle(new ArticleSearchEntity() { SearchText = this.SearchText }); var categoryList = Factory.Resolve <IBaseDataDS>().SearchCategories(new CategorySearchEntity() { SearchText = "" }); HideLoading(); //display to UI Application.Current.Dispatcher.Invoke(new Action(() => { ArticleList = articleList; SelectedArticle = ArticleList.FirstOrDefault(); CategoryList = categoryList; })); } catch (Exception ex) { HideLoading(); ShowMessageBox(StringResources.captionError, ex.ToString(), MessageBoxButton.OK); } }); }
public static string ArticleSearch(string ArticleTitle, int startIndex, int maximumRows, string sortExpressions) { ArticleCollection ArticleListSearch = new ArticleCollection(); Dictionary <string, object> dic = new Dictionary <string, object>(); ArticleList = ArticleCollection.GetArticleBySearch(ArticleTitle); Guid subId = SessionHelper.GetSession(SessionKey.SubDomain) == string.Empty ? Guid.Empty : new Guid(SessionHelper.GetSession(SessionKey.SubDomain)); if (subId == Guid.Empty) { ArticleListSearch = ArticleList; } else { PSCPortal.Engine.SubDomain subDomain = new PSCPortal.Engine.SubDomain { Id = subId }; PSCPortal.Engine.PageCollection listPage = subDomain.GetPagesBelongTo(); foreach (var item in listPage) { foreach (var article in ArticleList.Where(ar => ar.PageId == item.Id)) { ArticleListSearch.Add(article); } } } dic.Add("Data", ArticleListSearch.GetSegment(startIndex, maximumRows, sortExpressions)); dic.Add("Count", ArticleListSearch.Count); System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer(); return(js.Serialize(dic)); }
public static void ArticleEditTopic(string id) { Guid idArticle = new Guid(id); Article article = ArticleList.Where(a => a.Id == idArticle).Single(); article.UserAdd = System.Web.HttpContext.Current.User.Identity.Name; PSCDialog.DataShare = new ArticleArgs(article, article.GetDescription(), article.GetContent(), true); }
public RssActionResult Show(ArticleList page) { var feed = _articlesRssService.GetSyndicationFeed(page); return(new RssActionResult { Feed = feed }); }
public void SetUp() { _articlesRepositoryMock = new Mock <IReadOnlyArticleRepository>(); _articleParams = new ArticleParams(); _testArticles = ArticleList.GetDefaultList().AsEnumerable(); _pagedListOfArticles = new PagedList <Article>(_testArticles, _testArticles.Count(), 1, 10); _readMapper = new Mapper(new MapperConfiguration(cfg => cfg.AddProfile <Helpers.AutoMapperProfiles>())); }
public void Setup() { _testArticles = ArticleList.GetDefaultList(); _articleDbSetMock = _testArticles.AsQueryable().BuildMockDbSet(); _dataContextMock = new Mock <CommandDbContext>(); _dataContextMock.Setup(m => m.Articles).Returns(_articleDbSetMock.Object); _articleRepository = new ArticleRepository(_dataContextMock.Object); _unitOfWork = new UnitOfWork(_dataContextMock.Object, _articleRepository, null); }
public void ArticleListTestXmlTest() { ArticleList articlelist = new ArticleList(); articlelist.Type = ArticleList.ArticleListType.NormalAndApproved; XmlDocument xml = Serializer.SerializeToXml(articlelist); Assert.IsNotNull(xml.SelectSingleNode("ARTICLELIST")); }
public static string GetArticleList(string topicId, int startIndex, int maximumRows, string sortExpressions) { Guid idTopic = new Guid(topicId); Topic topic = (Topic)TopicList.Search(o => ((Topic)o).Id == idTopic); ArticleList = ArticleCollection.GetArticleCollection(topic); System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer(); return(js.Serialize(ArticleList.GetSegment(startIndex, maximumRows, sortExpressions))); }
public async Task <IActionResult> List([FromQuery] ArticleList request) { Paginated <ArticleListItemViewModel> list = await Mediator.Send(request with { UserId = RequestUserId, }); return(Ok(list)); }
public static void ArticleDelete(string[] arrId) { foreach (string id in arrId) { Guid idArticle = new Guid(id); ArticleList.RemoveDB(ArticleList.Where(a => a.Id == idArticle).Single()); Libs.Ultility.DeleteArticleIndexing(idArticle); } }
public void Login(string Email, string Password) { Info("Please Wait: Prepare Login"); ArticleList.Clear(); Author.Email = Email; Author.Password = Password; NavigateTo(Navigation.LoginCheck); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { NoticeList.DataSource = new DAL.DNotice().GetFirstSix(); NoticeList.DataBind(); ArticleList.DataSource = new DAL.DArticle().GetFirstSeven(); ArticleList.DataBind(); } }
// GET: Admin public async Task <ActionResult> Index(ArticleFilter filter) { var articles = await db.GetArticles(filter.Year, filter.Title); var model = new ArticleList { Articles = articles, Filter = filter }; return(View("Index", model)); }
public ActionResult News(string symbol, DateTimeOffset from, DateTimeOffset to) { symbol = symbol.ToUpperInvariant(); ArticleList articleList = repository.GetNewsArticles("company", symbol); if (articleList is not null && !articleList.IsStale(15)) { IEnumerable <NewsArticle> ret = articleList.Articles.Where(a => { DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(a.DateTime); return(dto >= from && dto <= to); }); return(Ok(ret)); } var fromStr = from.ToString("yyyy-MM-dd"); var toStr = to.ToString("yyyy-MM-dd"); var parameters = $"https://finnhub.io/api/v1/company-news?symbol={symbol}&from={fromStr}&to={toStr}"; HttpResponseMessage response = finnhubClient.GetAsync(parameters).Result; if (!response.IsSuccessStatusCode) { return(BadRequest($"Status code: {response.StatusCode}")); } List <FinnhubArticle> articles = response.Content.ReadFromJsonAsync <List <FinnhubArticle> >(serializerOptions).Result; bool shouldAdd = articleList is null; articleList = new ArticleList { Category = "company", Symbol = symbol, Articles = mapper.Map <List <NewsArticle> >(articles), LastUpdated = DateTimeOffset.UtcNow }; if (shouldAdd) { repository.AddEntity(articleList); } repository.SaveAll(); IEnumerable <NewsArticle> articlesRet = articleList.Articles.Where(a => { DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(a.DateTime); return(dto >= from && dto <= to); }); return(Ok(articlesRet)); }
public async Task <Paginated <ArticleListItemViewModel> > Handle(ArticleList request, CancellationToken cancellationToken) { new ArticleListValidator().ValidateAndThrow(request); return(await DB.ArticleCollectionsOfUserOrPublic(request.UserId) .Where(ac => !request.ArticleCollectionId.HasValue || ac.Id == request.ArticleCollectionId) .SelectMany(ac => ac.Articles) .SortBy(request.SortBy, request.UserId) .ProjectTo <ArticleListItemViewModel>(Mapper.ConfigurationProvider, new { userId = request.UserId }) .ToPaginatedAsync(request.Page, 50, cancellationToken)); }
public void DeleteArticleFromList(ArticleEntity newEntity) { ArticleEntity oldEntity = ArticleList.FirstOrDefault <ArticleEntity>(p => p.ArticleId == newEntity.ArticleId); if (oldEntity != null) { ArticleList.Remove(oldEntity); } ArticleList = new List <ArticleEntity>(_articleList); }
public static void ArticleSend(string id) { Guid idArticle = new Guid(id); Article article = ArticleList.Where(a => a.Id == idArticle).Single(); Article model = Article.GetArticleAlbum(idArticle); article.ArticleHangDate = article.GetArticleHang(); article.AlbumPath = model.AlbumPath; article.DocumentPath = model.DocumentPath; PSCDialog.DataShare = new ArticleArgs(article, article.GetDescription(), article.GetContent(), true); }
public static async Task<ArticleList> GetArticleListFromFeedAsync(string feedUrl) { var syncClient = new SyndicationClient(); var lista = new ArticleList(); var feed = await syncClient.RetrieveFeedAsync(new Uri(feedUrl)); foreach (var art in feed.Items) { var content = CreateContent(art.NodeValue); { var newArticle = new Article() { Title = art.Title.Text, Content = content, Summary = CreateSummary(art.Summary, content), ImgUri = Find1stImageFromHtml(content) }; lista.Add(newArticle); } } return lista; }
/// <summary> /// Returns a test ArticleListTest /// </summary> /// <returns></returns> public static ArticleList CreateTestArticleListTest() { var articleList = new ArticleList() { Articles = new List<ArticleSummary> { ArticleSummaryTest.CreateArticleSummaryTest() } }; return articleList; }
public void GetCacheKeyTest() { var articleList = new ArticleList(); string expected = string.Format("{0}|0|0|0|0|True|0|", typeof(ArticleList).AssemblyQualifiedName); string actual = articleList.GetCacheKey(0, 0, 0, 0, true, 0); Assert.AreEqual(expected, actual); }
public void IsUpToDate_ArticleListTestOutOfDate_ReturnsCorrect() { // PREPARE THE TEST // setup the default mocks MockRepository mocks = new MockRepository(); var target = new ArticleList() { Articles = new List<ArticleSummary> { ArticleSummaryTest.CreateArticleSummaryTest() } }; var reader = mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.HasRows).Return(true); reader.Stub(x => x.Read()).Return(false); var creator = mocks.DynamicMock<IDnaDataReaderCreator>(); mocks.ReplayAll(); Assert.AreEqual(false, target.IsUpToDate(creator)); }