本文整理汇总了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;
}
}
示例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;
}
示例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>();
}
示例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);
}
}
}