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


C# UnitOfWork.GetDataService方法代码示例

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


在下文中一共展示了UnitOfWork.GetDataService方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: ToDatabase

        private async Task ToDatabase()
        {
            if (_toDatabaseIsActive)
                return;
            _toDatabaseIsActive = true;
            using (var unitOfWork = new UnitOfWork(false))
            {
                await _themeRepository.SaveChanges(await unitOfWork.GetDataService());

                while (_toDatabaseArticles.Any() || _toDatabaseFlatArticles.Any())
                {
                    var flatarticle = _toDatabaseFlatArticles.FirstOrDefault();
                    if (flatarticle != null)
                    {
                        _toDatabaseFlatArticles.Remove(flatarticle);
                        await UpdateArticleFlat(flatarticle, await unitOfWork.GetDataService());
                        Messenger.Default.Send(flatarticle, Messages.ArticleRefresh);
                    }
                    else
                    {
                        var complexarticles = _toDatabaseArticles.FirstOrDefault();
                        if (complexarticles != null)
                        {
                            _toDatabaseArticles.Remove(complexarticles);
                            await InsertOrUpdateArticleAndTraces(complexarticles, await unitOfWork.GetDataService());
                            Messenger.Default.Send(complexarticles, Messages.ArticleRefresh);
                        }
                    }
                }
            }
            _toDatabaseIsActive = false;
        }
开发者ID:famoser,项目名称:OfflineMedia,代码行数:32,代码来源:AktualizeArticles(20151117+1505).cs

示例3: 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

示例4: AktualizeArticlesTask

        private async Task AktualizeArticlesTask()
        {
            using (var unitOfWork = new UnitOfWork(false))
            {
                while (_newArticleModels.Any())
                {
                    var article = _newArticleModels.OrderByDescending(d => d.PublicationTime).FirstOrDefault();
                    _newArticleModels.Remove(article);

                    article.State = ArticleState.Loading;
                    _toDatabaseFlatArticles.Add(article);
                    await ToDatabase();

                    //Messenger.Default.Send(article, Messages.ArticleRefresh);

                    //this comes from the cache, so its OK to use here
                    article.FeedConfiguration = await _settingsRepository.GetFeedConfigurationFor(article.FeedConfigurationId, await unitOfWork.GetDataService());

                    IMediaSourceHelper sh = ArticleHelper.Instance.GetMediaSource(article);
                    if (sh == null)
                    {
                        LogHelper.Instance.Log(LogLevel.Warning, this,
                            "ArticleHelper.DownloadArticle: Tried to Download Article which cannot be downloaded");
                        article.State = ArticleState.WrongSourceFaillure;
                        _toDatabaseFlatArticles.Add(article);
                        await ToDatabase();
                    }
                    else
                    {
                        article = await ActualizeArticle(article, sh);

                        _toDatabaseArticles.Add(article);
                        await ToDatabase();
                    }

                    var percentage = Convert.ToInt32(100 - ((_newArticleModels.Count * 100) / _newArticles));
                    _progressService.ShowProgress("Artikel werden heruntergeladen...", percentage);
                }
            }
        }
开发者ID:famoser,项目名称:OfflineMedia,代码行数:40,代码来源:AktualizeArticles(20151117+1505).cs


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