protected async Task LoadNewParsingStates(GalleryState state)
        {
            // TODO Error states

            var parsingStates = await _repository.GetParsingStates(x => x.State == state);

            lock (_queue)
                lock (_enqueuedParsingStates)
                {
                    var newParsingStates = parsingStates
                                           .Where(ps => _enqueuedParsingStates.All(eps => eps.GalleryId != ps.Gallery.Id))
                                           .ToList();

                    _enqueuedParsingStates.AddRange(newParsingStates);

                    var count = newParsingStates.Count;
                    Logger.Info($"{count} new parsing states are added to the queue.");

                    foreach (var newParsingState in newParsingStates)
                    {
                        _queue.Enqueue(newParsingState);
                    }
                }

            await RestartQueueProcess();
        }
示例#2
0
        public async Task SetParsingStatus(int parsingStateId, GalleryState galleryState, string errorString = null)
        {
            using (var db = new DataContext())
            {
                var ps = await db.ParsingStates.FindAsync(parsingStateId);

                ps.State           = galleryState;
                ps.DateTimeUpdated = DateTime.Now;
                ps.ErrorString     = errorString;
                await db.SaveChangesAsync();
            }
        }
示例#3
0
 public PackageConsistencyState()
 {
     Gallery           = new GalleryState();
     PackagesContainer = new PackagesContainerState();
     FlatContainer     = new FlatContainerState();
 }