コード例 #1
0
 private void ResolveErrorDescription(ScanResultErrorItemViewModel error)
 {
     if (Errors == null || error == null)
     {
         return;
     }
     error.Description = Localization.GetErrorDescription(error.ErrorType);
 }
コード例 #2
0
        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;
            }
        }