public FeedDTO CheckFeedStatus(TimeSpan waitTimeOfProcessing) { var currentFeed = GetExistFeed(); if (currentFeed == null) { return(null); } //if (waitTimeOfProcessing != TimeSpan.Zero && currentFeed.SubmitDate < _time.GetAppNowTime().Subtract(waitTimeOfProcessing)) // return null; var feedStatusUpdated = false; var feedItemsResult = _api.GetFeedItems(currentFeed.AmazonIdentifier); if (feedItemsResult.IsSuccess) { using (var db = _dbFactory.GetRWDb()) { foreach (var item in feedItemsResult.Data) { _log.Info("Item status: itemId=" + item.ItemId + ", status=" + item.Status); item.FeedId = currentFeed.Id; ProcessFeedItem(db, item, currentFeed.SubmitDate); } db.Commit(); UpdateFeedStatus(db, currentFeed, feedItemsResult.Data, waitTimeOfProcessing); feedStatusUpdated = true; } } if (!feedStatusUpdated) { var feedResult = _api.GetFeed(currentFeed.AmazonIdentifier); if (feedResult.IsSuccess) { if (feedResult.Data.Status == (int)WalmartFeedStatus.ERROR) { _log.Info("Feed Status=ERROR, FeedId=" + currentFeed.AmazonIdentifier); using (var db = _dbFactory.GetRWDb()) { UpdateFeedStatus(db, currentFeed, new List <WalmartFeedItemDTO>(), waitTimeOfProcessing); } } } } return(currentFeed); }