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(); }
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(); } }
public PackageConsistencyState() { Gallery = new GalleryState(); PackagesContainer = new PackagesContainerState(); FlatContainer = new FlatContainerState(); }