private void ResolveErrorDescription(ScanResultErrorItemViewModel error) { if (Errors == null || error == null) { return; } error.Description = Localization.GetErrorDescription(error.ErrorType); }
private void HandleScanProgress <T>(object progress) where T : LibgenObject { switch (progress) { case GenericProgress genericProgress: switch (genericProgress.ProgressEvent) { case GenericProgress.Event.SCAN_CREATING_INDEXES: ScanLogs.Add(Localization.CreatingIndexes); break; } break; case ScanProgress <T> scanProgress: switch (scanProgress.LibgenObject) { case NonFictionBook nonFictionBook: FoundItems.Add(new NonFictionScanResultItemViewModel(scanProgress.RelativeFilePath, nonFictionBook)); break; case FictionBook fictionBook: FoundItems.Add(new FictionScanResultItemViewModel(scanProgress.RelativeFilePath, fictionBook)); break; case SciMagArticle sciMagArticle: FoundItems.Add(new SciMagScanResultItemViewModel(scanProgress.RelativeFilePath, sciMagArticle)); break; } UpdateResultTabHeaders(); break; case ScanUnknownProgress scanUnknownProgress: if (scanUnknownProgress.Error) { var error = new ScanResultErrorItemViewModel(scanUnknownProgress.RelativeFilePath, scanUnknownProgress.ErrorType); ResolveErrorDescription(error); Errors.Add(error); UpdateResultTabHeaders(); } else { NotFoundItems.Add(scanUnknownProgress.RelativeFilePath); UpdateResultTabHeaders(); } break; case ScanCompleteProgress scanCompleteProgress: ScanLogs.Add(Localization.GetScanCompleteString(scanCompleteProgress.Found, scanCompleteProgress.NotFound, scanCompleteProgress.Errors)); break; } }