当前位置: 首页>>代码示例>>C#>>正文


C# GenericRepository.GetByCondition方法代码示例

本文整理汇总了C#中GenericRepository.GetByCondition方法的典型用法代码示例。如果您正苦于以下问题:C# GenericRepository.GetByCondition方法的具体用法?C# GenericRepository.GetByCondition怎么用?C# GenericRepository.GetByCondition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GenericRepository的用法示例。


在下文中一共展示了GenericRepository.GetByCondition方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ActualizeArticles

        public async Task ActualizeArticles()
        {
            //Get Total Number of feeds
            int feedcounter = _sources.SelectMany(source => source.FeedList).Count();
            int activecounter = 0;

            foreach (var sourceModel in _sources)
            {
                if (sourceModel.SourceConfiguration.Source == SourceEnum.Favorites)
                    continue;

                foreach (var feed in sourceModel.FeedList)
                {
                    var newfeed = await FeedHelper.Instance.DownloadFeed(feed);
                    _progressService.ShowProgress("Feeds werden heruntergeladen...", Convert.ToInt32((++activecounter * 100) / feedcounter));
                    if (newfeed != null)
                    {
                        ArticleHelper.Instance.AddWordDumpFromFeed(ref newfeed);

                        var newarticles = await FeedToDatabase(newfeed);
                        _newArticleModels.AddRange(newarticles);
                        Messenger.Default.Send(newarticles, Messages.FeedRefresh);
                    }
                }
            }

            using (var unitOfWork = new UnitOfWork(true))
            {
                var repo = new GenericRepository<ArticleModel, ArticleEntity>(await unitOfWork.GetDataService());
                var state = (int)ArticleState.New;
                var newarticles = await repo.GetByCondition(d => d.State == state);
                foreach (var articleModel in newarticles)
                {
                    if (_newArticleModels.All(d => d.Id != articleModel.Id))
                    {
                        _newArticleModels.Add(await AddModels(articleModel, await unitOfWork.GetDataService(), true));
                    }
                }
            }

            _newArticles = _newArticleModels.Count;

            //Actualize articles
            if (!_aktualizeArticlesTasks.Any())
            {
                for (int i = 0; i < 4; i++)
                {
                    var tsk = AktualizeArticlesTask().ContinueWith(DeleteTaskFromList);
                    _aktualizeArticlesTasks.Add(tsk);
                }
            }

            foreach (var aktualizeArticlesTask in _aktualizeArticlesTasks)
            {
                await aktualizeArticlesTask;
            }
        }
开发者ID:famoser,项目名称:OfflineMedia,代码行数:57,代码来源:AktualizeArticles(20151117+1505).cs

示例2: FeedToDatabase

        private async Task<List<ArticleModel>> FeedToDatabase(List<ArticleModel> articles)
        {
            try
            {
                if (articles.Any())
                {
                    using (var unitOfWork = new UnitOfWork(false))
                    {
                        var repo = new GenericRepository<ArticleModel, ArticleEntity>(await unitOfWork.GetDataService());
                        var guidString = articles.FirstOrDefault().FeedConfiguration.Guid.ToString();
                        var oldfeed = await repo.GetByCondition(a => a.FeedConfigurationId == guidString);
                        for (int index = 0; index < articles.Count; index++)
                        {
                            var articleModel = articles[index];
                            var oldmodel = oldfeed.FirstOrDefault(d => d.PublicUri == articleModel.PublicUri);
                            if (oldmodel != null)
                            {
                                articles.Remove(articleModel);
                                oldfeed.Remove(oldmodel);
                                index--;
                            }
                        }

                        //delete old ones
                        await DeleteAllArticlesAndTrances(oldfeed.Where(d => !d.IsFavorite).Select(d => d.Id).ToList(), await unitOfWork.GetDataService());

                        //only new ones left
                        await InsertAllArticleAndTraces(articles, await unitOfWork.GetDataService());

                        await unitOfWork.Commit();

                        return articles;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Instance.Log(LogLevel.Error, this, "Exception occured", ex);
            }
            return new List<ArticleModel>();
        }
开发者ID:famoser,项目名称:OfflineMedia,代码行数:41,代码来源:AktualizeArticles(20151117+1505).cs


注:本文中的GenericRepository.GetByCondition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。