public List <FileResults> Scan(ICompress file, bool testcrc, bool deepScan) { List <FileResults> listDsFile = new List <FileResults>(); int fileCount = file.LocalFilesCount(); for (int i = 0; i < fileCount; i++) { FileResults fileResults = new FileResults(); ZipReturn zr = file.ZipFileOpenReadStream(i, out Stream fStream, out fileResults.Size); if (zr != ZipReturn.ZipGood) { fileResults.FileStatus = zr; } else { int res = CheckSumRead(fStream, fileResults, file.UncompressedSize(i), testcrc, deepScan); if (res != 0) { fileResults.FileStatus = ZipReturn.ZipDecodeError; } else { fileResults.FileStatus = testcrc || ByteArrCompare(file.CRC32(i), fileResults.CRC) ? ZipReturn.ZipGood : ZipReturn.ZipCRCDecodeError; } } listDsFile.Add(fileResults); file.ZipFileCloseReadStream(); } return(listDsFile); }
public void Clear() { Source = null; Target = null; TotalFiles = IdenticalFiles = DifferentFiles = UniqueFiles = BaseUniqueFiles = 0; FileResults.Clear(); }
public List <FileResults> Scan(ICompress file, bool testcrc, bool deepScan) { testcrc = testcrc || deepScan; List <FileResults> lstFileResults = new List <FileResults>(); int fileCount = file.LocalFilesCount(); for (int i = 0; i < fileCount; i++) { LocalFile lf = file.GetLocalFile(i); FileResults fileResults = new FileResults(); if (lf.IsDirectory) { fileResults.HeaderFileType = HeaderFileType.Nothing; fileResults.FileStatus = ZipReturn.ZipGood; fileResults.Size = 0; fileResults.CRC = new byte[] { 0, 0, 0, 0 }; fileResults.SHA1 = new byte[] { 0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, 0x07, 0x09 }; fileResults.MD5 = new byte[] { 0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04, 0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e }; lstFileResults.Add(fileResults); continue; } ZipReturn zr = file.ZipFileOpenReadStream(i, out Stream fStream, out fileResults.Size); if (zr != ZipReturn.ZipGood) { fileResults.FileStatus = zr; } else { int res = CheckSumRead(fStream, fileResults, lf.UncompressedSize, testcrc, deepScan); if (res != 0) { fileResults.FileStatus = ZipReturn.ZipDecodeError; } else { // if we are not testcrc'ing or deepScan'ing then we did not verify the data stream // so we assume it is good. if (!testcrc) { fileResults.CRC = lf.CRC; } fileResults.FileStatus = ByteArrCompare(lf.CRC, fileResults.CRC) ? ZipReturn.ZipGood : ZipReturn.ZipCRCDecodeError; } } lstFileResults.Add(fileResults); } file.ZipFileCloseReadStream(); return(lstFileResults); }
private async void UpdateResults() { if (TryInitilaizeFilePath()) { _fileResults = await _resultProvider.GetFileResultsAsync(_filePath); UpdateAllLines(); } }
public void ClearReplays() { _log.Information("Clearing replay list..."); App.Current.Dispatcher.Invoke((Action) delegate { PreviewReplays.Clear(); }); FileResults.Clear(); }
void btnSearch_Click(object sender, RoutedEventArgs e) { try { if (!VM_ShokoServer.Instance.ServerOnline) { return; } FileSearchCriteria searchType = FileSearchCriteria.Name; if (cboSearchType.SelectedItem.ToString() == SearchTypeHash) { searchType = FileSearchCriteria.ED2KHash; } if (cboSearchType.SelectedItem.ToString() == SearchTypeTopOneHundred) { searchType = FileSearchCriteria.LastOneHundred; } if (txtFileSearch.Text.Trim().Length == 0 && searchType != FileSearchCriteria.LastOneHundred) { MessageBox.Show(Shoko.Commons.Properties.Resources.Seach_Criteria, Shoko.Commons.Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); txtFileSearch.Focus(); return; } FileResults.Clear(); ViewFiles.Refresh(); FileCount = 0; Cursor = Cursors.Wait; EnableDisableControls(false); List <VM_VideoLocal> rawVids = VM_ShokoServer.Instance.ShokoServices.SearchForFiles( (int)searchType, txtFileSearch.Text, VM_ShokoServer.Instance.CurrentUser.JMMUserID).OrderByNatural(a => a.Places.First().FilePath).CastList <VM_VideoLocal>(); foreach (VM_VideoLocal raw in rawVids) { FileResults.Add(raw); } FileCount = rawVids.Count; Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { Cursor = Cursors.Arrow; EnableDisableControls(true); } }
void btnSearch_Click(object sender, RoutedEventArgs e) { try { if (!JMMServerVM.Instance.ServerOnline) { return; } FileSearchCriteria searchType = FileSearchCriteria.Name; if (cboSearchType.SelectedItem.ToString() == SearchTypeHash) { searchType = FileSearchCriteria.ED2KHash; } if (cboSearchType.SelectedItem.ToString() == SearchTypeTopOneHundred) { searchType = FileSearchCriteria.LastOneHundred; } if (txtFileSearch.Text.Trim().Length == 0 && searchType != FileSearchCriteria.LastOneHundred) { MessageBox.Show(Properties.Resources.Seach_Criteria, Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); txtFileSearch.Focus(); return; } FileResults.Clear(); ViewFiles.Refresh(); FileCount = 0; this.Cursor = Cursors.Wait; EnableDisableControls(false); List <JMMServerBinary.Contract_VideoLocal> rawVids = JMMServerVM.Instance.clientBinaryHTTP.SearchForFiles( (int)searchType, txtFileSearch.Text, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); foreach (JMMServerBinary.Contract_VideoLocal raw in rawVids) { FileResults.Add(new VideoLocalVM(raw)); } FileCount = rawVids.Count; this.Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { this.Cursor = Cursors.Arrow; EnableDisableControls(true); } }
private async void UpdateResults() { if (TryInitilaizeDocument()) { var isModified = _textDocument.LastContentModifiedTime > _editorContext.LastBuildTime.ToUniversalTime(); _resultMapping = new LineMapping(_textView.TextSnapshot.LineCount, isModified); _fileResults = await _resultProvider.GetFileResultsAsync(_textDocument.FilePath); UpdateAllLines(); } }
void btnClearList_Click(object sender, RoutedEventArgs e) { try { FileResults.Clear(); ViewFiles.Refresh(); FileCount = 0; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
/// <summary> /// Save a Replay File result /// </summary> /// <param name="fileResult"></param> public ReplayPreview AddReplay(FileResult file) { var previewModel = CreateReplayPreview(file); App.Current.Dispatcher.Invoke((Action) delegate { PreviewReplays.Add(previewModel); }); FileResults.Add(file.FileInfo.Path, file); return(previewModel); }
public List <FileResults> Scan(ICompress file, bool testcrc, bool deepScan) { List <FileResults> lstFileResults = new List <FileResults>(); int fileCount = file.LocalFilesCount(); for (int i = 0; i < fileCount; i++) { FileResults fileResults = new FileResults(); if (file.IsDirectory(i)) { fileResults.HeaderFileType = HeaderFileType.Nothing; fileResults.FileStatus = ZipReturn.ZipGood; fileResults.Size = 0; fileResults.CRC = new byte[] { 0, 0, 0, 0 }; lstFileResults.Add(fileResults); continue; } ZipReturn zr = file.ZipFileOpenReadStream(i, out Stream fStream, out fileResults.Size); if (zr != ZipReturn.ZipGood) { fileResults.FileStatus = zr; } else { int res = CheckSumRead(fStream, fileResults, file.UncompressedSize(i), testcrc, deepScan); if (res != 0) { fileResults.FileStatus = ZipReturn.ZipDecodeError; } else { if (!testcrc) { fileResults.CRC = file.CRC32(i); } // if we are not testcrc'ing or deepScan'ing then we did not verify the data stream // so we assume it is good. fileResults.FileStatus = !(testcrc || deepScan) || ByteArrCompare(file.CRC32(i), fileResults.CRC) ? ZipReturn.ZipGood : ZipReturn.ZipCRCDecodeError; } } lstFileResults.Add(fileResults); } file.ZipFileCloseReadStream(); return(lstFileResults); }
void ReleaseDesignerOutlets() { if (EntitySizes != null) { EntitySizes.Dispose(); EntitySizes = null; } if (FileResults != null) { FileResults.Dispose(); FileResults = null; } if (IsAppWorking != null) { IsAppWorking.Dispose(); IsAppWorking = null; } if (SearchButton != null) { SearchButton.Dispose(); SearchButton = null; } if (SearchParameter != null) { SearchParameter.Dispose(); SearchParameter = null; } if (SelectableActions != null) { SelectableActions.Dispose(); SelectableActions = null; } if (TrashCanIcon != null) { TrashCanIcon.Dispose(); TrashCanIcon = null; } if (SearchField != null) { SearchField.Dispose(); SearchField = null; } }
public void DelAction() { var trashedFile = Path.GetTempFileName(); var removeRows = new Dictionary <nuint, Entity> (); foreach (var row in FileResults.SelectedRows.ToArray()) { int converted; if (false == Int32.TryParse(row.ToString(), out converted)) { continue; } var path = ((EntityDataSource)FileResults.DataSource).Entities [converted].Path; removeRows [row] = ((EntityDataSource)FileResults.DataSource).Entities [converted]; System.IO.File.AppendAllText(trashedFile, path + '\n'); } AppDelegate.Debug(trashedFile); var process = Process.Start("/usr/bin/osascript", NSBundle.MainBundle.ResourcePath + "/santas_helper.scpt " + trashedFile); process.WaitForExit(); var rowsToVanish = new NSMutableIndexSet(); foreach (var key in removeRows.Keys) { // Maybe they hit cancel when authenticating if (Directory.Exists(removeRows[key].Path) || File.Exists(removeRows[key].Path)) { continue; } rowsToVanish.Add(key); ((EntityDataSource)FileResults.DataSource)._entities.Remove(removeRows[key]); } BeginInvokeOnMainThread(() => FileResults.RemoveRows(rowsToVanish, NSTableViewAnimation.Fade)); }
/// <summary> /// Get replays from database and load to display /// </summary> public void LoadReplays() { _log.Information("Loading replays from database..."); var databaseResults = _fileManager.GetReplays(SortParameters, SettingsManager.Settings.ItemsPerPage, PreviewReplays.Count); _log.Information($"Retrieved {databaseResults.Count} replays"); foreach (var file in databaseResults) { var previewModel = CreateReplayPreview(file); App.Current.Dispatcher.Invoke((Action) delegate { PreviewReplays.Add(previewModel); }); FileResults.Add(file.FileInfo.Path, file); } }
/// <summary> /// The function to call to refresh the list /// </summary> /// <returns></returns> public async Task ReloadReplayList() { _log.Information($"Refreshing replay list..."); FileResults.Clear(); PreviewReplays.Clear(); StatusBarModel.StatusMessage = Application.Current.TryFindResource("LoadingMessageReplay") as string; StatusBarModel.Color = Brushes.White; StatusBarModel.Visible = true; StatusBarModel.ShowProgressBar = true; await _fileManager.InitialLoadAsync().ConfigureAwait(true); LoadReplays(); StatusBarModel.StatusMessage = Application.Current.TryFindResource("LoadingMessageThumbnails") as string; await LoadPreviewPlayerThumbnails().ConfigureAwait(true); StatusBarModel.Visible = false; }
public void OpenReplayContainingFolder(string location) { _log.Information($"Opening replay file location {location}"); if (String.IsNullOrEmpty(location)) { throw new ArgumentNullException(nameof(location)); } FileResults.TryGetValue(location, out FileResult match); if (match == null) { throw new ArgumentException($"{location} does not match any known replays"); } string selectArg = $"/select, \"{match.FileInfo.Path}\""; Process.Start("explorer.exe", selectArg); }
/// <summary> /// The function to call to refresh the list /// </summary> /// <returns></returns> public async Task ReloadReplayList() { _log.Information($"Refreshing replay list..."); FileResults.Clear(); PreviewReplays.Clear(); ValidateReplayStorage(); StatusBarModel.StatusMessage = Application.Current.TryFindResource("LoadingMessageReplay") as string; StatusBarModel.Visible = true; StatusBarModel.ShowProgressBar = true; // Discover and load replays into database await _fileManager.InitialLoadAsync().ConfigureAwait(true); // Load from database into our viewmodel LoadReplaysFromDatabase(); StatusBarModel.StatusMessage = Application.Current.TryFindResource("LoadingMessageThumbnails") as string; await LoadPreviewPlayerThumbnails().ConfigureAwait(true); StatusBarModel.Visible = false; }
private int CheckSumRead(Stream inStream, FileResults fileResults, ulong totalSize, bool testcrc, bool testDeep) { if (_buffer0 == null) { _buffer0 = new byte[Buffersize]; _buffer1 = new byte[Buffersize]; } fileResults.MD5 = null; fileResults.SHA1 = null; fileResults.CRC = null; ThreadReadBuffer lbuffer = null; ThreadCRC tcrc32 = null; ThreadMD5 tmd5 = null; ThreadSHA1 tsha1 = null; ThreadCRC altCrc32 = null; ThreadMD5 altMd5 = null; ThreadSHA1 altSha1 = null; try { int maxHeaderSize = 128; long sizetogo = (long)totalSize; int sizenow = maxHeaderSize < sizetogo ? maxHeaderSize : (int)sizetogo; if (sizenow > 0) { inStream.Read(_buffer0, 0, sizenow); } fileResults.HeaderFileType = FileHeaderReader.GetType(_buffer0, sizenow, out int actualHeaderSize); // if the file has no header then just use the main hash checkers. if (fileResults.HeaderFileType == HeaderFileType.Nothing || actualHeaderSize == 0) { // no header found & not reading hashes. if (!(testcrc || testDeep)) { return(0); } // no header found so just push the initial buffer read into the hash checkers. // and then continue with the rest of the file. tcrc32 = new ThreadCRC(); if (testDeep) { tmd5 = new ThreadMD5(); tsha1 = new ThreadSHA1(); } tcrc32.Trigger(_buffer0, sizenow); tmd5?.Trigger(_buffer0, sizenow); tsha1?.Trigger(_buffer0, sizenow); tcrc32.Wait(); tmd5?.Wait(); tsha1?.Wait(); sizetogo -= sizenow; } else { // header found fileResults.AltSize = (ulong)((long)totalSize - actualHeaderSize); //setup main hash checkers if (testcrc || testDeep) { tcrc32 = new ThreadCRC(); } altCrc32 = new ThreadCRC(); if (testDeep) { tmd5 = new ThreadMD5(); tsha1 = new ThreadSHA1(); altMd5 = new ThreadMD5(); altSha1 = new ThreadSHA1(); } if (sizenow > actualHeaderSize) { // Already read more than the header, so we need to split what we read into the 2 hash checkers // first scan the header part from what we have already read. // scan what we read so far with just the main hashers tcrc32?.Trigger(_buffer0, actualHeaderSize); tmd5?.Trigger(_buffer0, actualHeaderSize); tsha1?.Trigger(_buffer0, actualHeaderSize); tcrc32?.Wait(); tmd5?.Wait(); tsha1?.Wait(); // put the rest of what we read into the second buffer, and scan with all hashers int restSize = sizenow - actualHeaderSize; for (int i = 0; i < restSize; i++) { _buffer1[i] = _buffer0[actualHeaderSize + i]; } tcrc32?.Trigger(_buffer1, restSize); tmd5?.Trigger(_buffer1, restSize); tsha1?.Trigger(_buffer1, restSize); altCrc32.Trigger(_buffer1, restSize); altMd5?.Trigger(_buffer1, restSize); altSha1?.Trigger(_buffer1, restSize); tcrc32?.Wait(); tmd5?.Wait(); tsha1?.Wait(); altCrc32.Wait(); altMd5?.Wait(); altSha1?.Wait(); sizetogo -= sizenow; } else { // Read less than the length of the header so read the rest of the header. // then continue to reader the full rest of the file. // scan what we read so far tcrc32?.Trigger(_buffer0, sizenow); tmd5?.Trigger(_buffer0, sizenow); tsha1?.Trigger(_buffer0, sizenow); tcrc32?.Wait(); tmd5?.Wait(); tsha1?.Wait(); sizetogo -= sizenow; // now read the rest of the header. sizenow = actualHeaderSize - sizenow; inStream.Read(_buffer0, 0, sizenow); // scan the rest of the header tcrc32?.Trigger(_buffer0, sizenow); tmd5?.Trigger(_buffer0, sizenow); tsha1?.Trigger(_buffer0, sizenow); tcrc32?.Wait(); tmd5?.Wait(); tsha1?.Wait(); sizetogo -= sizenow; } } lbuffer = new ThreadReadBuffer(inStream); // Pre load the first buffer0 int sizeNext = sizetogo > Buffersize ? Buffersize : (int)sizetogo; if (sizeNext > 0) { inStream.Read(_buffer0, 0, sizeNext); } int sizebuffer = sizeNext; sizetogo -= sizeNext; bool whichBuffer = true; while (sizebuffer > 0 && !lbuffer.errorState) { sizeNext = sizetogo > Buffersize ? Buffersize : (int)sizetogo; if (sizeNext > 0) { lbuffer.Trigger(whichBuffer ? _buffer1 : _buffer0, sizeNext); } byte[] buffer = whichBuffer ? _buffer0 : _buffer1; tcrc32?.Trigger(buffer, sizebuffer); tmd5?.Trigger(buffer, sizebuffer); tsha1?.Trigger(buffer, sizebuffer); altCrc32?.Trigger(buffer, sizebuffer); altMd5?.Trigger(buffer, sizebuffer); altSha1?.Trigger(buffer, sizebuffer); if (sizeNext > 0) { lbuffer.Wait(); } tcrc32?.Wait(); tmd5?.Wait(); tsha1?.Wait(); altCrc32?.Wait(); altMd5?.Wait(); altSha1?.Wait(); sizebuffer = sizeNext; sizetogo -= sizeNext; whichBuffer = !whichBuffer; } lbuffer.Finish(); tcrc32?.Finish(); tmd5?.Finish(); tsha1?.Finish(); altCrc32?.Finish(); altMd5?.Finish(); altSha1?.Finish(); } catch { lbuffer?.Dispose(); tcrc32?.Dispose(); tmd5?.Dispose(); tsha1?.Dispose(); altCrc32?.Dispose(); altMd5?.Dispose(); altSha1?.Dispose(); return(0x17); // need to remember what this number is for } if (lbuffer.errorState) { lbuffer.Dispose(); tcrc32?.Dispose(); tmd5?.Dispose(); tsha1?.Dispose(); altCrc32?.Dispose(); altMd5?.Dispose(); altSha1?.Dispose(); return(0x17); // need to remember what this number is for } fileResults.CRC = tcrc32?.Hash; fileResults.SHA1 = tsha1?.Hash; fileResults.MD5 = tmd5?.Hash; fileResults.AltCRC = altCrc32?.Hash; fileResults.AltSHA1 = altSha1?.Hash; fileResults.AltMD5 = altMd5?.Hash; lbuffer.Dispose(); tcrc32?.Dispose(); tmd5?.Dispose(); tsha1?.Dispose(); altCrc32?.Dispose(); altMd5?.Dispose(); altSha1?.Dispose(); return(0); }
void btnLoadFiles_Click(object sender, RoutedEventArgs e) { try { if (!VM_ShokoServer.Instance.ServerOnline) { return; } ViewFiles.Refresh(); Cursor = Cursors.Wait; EnableDisableControls(false); List <VM_VideoLocal> rawVids = new List <VM_VideoLocal>(); if (LoadTypeIsRandom) { rawVids = VM_ShokoServer.Instance.ShokoServices.RandomFileRenamePreview(udRandomFiles.Value.Value, VM_ShokoServer.Instance.CurrentUser.JMMUserID).CastList <VM_VideoLocal>(); /*List<int> testIDs = new List<int>(); * * testIDs.Add(6041); // Gekijouban Bleach: Fade to Black Kimi no Na o Yobu * testIDs.Add(6784); // Fate/Stay Night: Unlimited Blade Works * testIDs.Add(5975); // Toaru Majutsu no Index * testIDs.Add(7599); // Toaru Majutsu no Index II * testIDs.Add(8694); // Gekijouban Toaru Majutsu no Index (movie) * testIDs.Add(6071); // Quiz Magic Academy: The Original Animation * testIDs.Add(4145); // Amaenaide yo!! Katsu!! * testIDs.Add(2369); // Bleach * testIDs.Add(69); // One Piece * foreach (int animeID in testIDs) * { * List<JMMServerBinary.Contract_VideoLocal> raws = VM_ShokoServer.Instance.clientBinaryHTTP.GetVideoLocalsForAnime(animeID, * VM_ShokoServer.Instance.CurrentUser.JMMUserID.Value); * * rawVids.AddRange(raws); * }*/ } if (LoadTypeIsAll) { rawVids = VM_ShokoServer.Instance.ShokoServices.RandomFileRenamePreview(int.MaxValue, VM_ShokoServer.Instance.CurrentUser.JMMUserID).CastList <VM_VideoLocal>(); } if (LoadTypeIsSeries) { Window wdw = Window.GetWindow(this); SelectGroupSeriesForm frm = new SelectGroupSeriesForm(); frm.Owner = wdw; frm.Init(); bool?result = frm.ShowDialog(); if (result.HasValue && result.Value == true) { if (frm.SelectedObject.GetType() == typeof(VM_AnimeGroup_User)) { VM_AnimeGroup_User grp = frm.SelectedObject as VM_AnimeGroup_User; foreach (VM_AnimeSeries_User ser in grp.AllAnimeSeries) { rawVids.AddRange(VM_ShokoServer.Instance.ShokoServices.GetVideoLocalsForAnime(ser.AniDB_ID, VM_ShokoServer.Instance.CurrentUser.JMMUserID).Cast <VM_VideoLocal>()); } } if (frm.SelectedObject.GetType() == typeof(VM_AnimeSeries_User)) { VM_AnimeSeries_User ser = frm.SelectedObject as VM_AnimeSeries_User; rawVids.AddRange(VM_ShokoServer.Instance.ShokoServices.GetVideoLocalsForAnime(ser.AniDB_ID, VM_ShokoServer.Instance.CurrentUser.JMMUserID).Cast <VM_VideoLocal>()); } } } foreach (VM_VideoLocal vid in rawVids) { VM_VideoLocal_Renamed ren = new VM_VideoLocal_Renamed(); ren.VideoLocalID = vid.VideoLocalID; ren.VideoLocal = vid; ren.Success = false; FileResults.Add(ren); } FileCount = FileResults.Count; Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { Cursor = Cursors.Arrow; EnableDisableControls(true); } }
void btnLoadFiles_Click(object sender, RoutedEventArgs e) { try { if (!VM_ShokoServer.Instance.ServerOnline) { return; } ViewFiles.Refresh(); Cursor = Cursors.Wait; EnableDisableControls(false); List <VM_VideoLocal> rawVids = new List <VM_VideoLocal>(); if (LoadTypeIsRandom) { rawVids = VM_ShokoServer.Instance.ShokoServices .RandomFileRenamePreview(udRandomFiles.Value.Value, VM_ShokoServer.Instance.CurrentUser.JMMUserID) .CastList <VM_VideoLocal>(); } else if (LoadTypeIsAll) { rawVids = VM_ShokoServer.Instance.ShokoServices .RandomFileRenamePreview(int.MaxValue, VM_ShokoServer.Instance.CurrentUser.JMMUserID) .CastList <VM_VideoLocal>(); } else if (LoadTypeIsSeries) { Window wdw = Window.GetWindow(this); SelectGroupSeriesForm frm = new SelectGroupSeriesForm(); frm.Owner = wdw; frm.Init(); bool?result = frm.ShowDialog(); if (result.HasValue && result.Value == true) { if (frm.SelectedObject.GetType() == typeof(VM_AnimeGroup_User)) { VM_AnimeGroup_User grp = frm.SelectedObject as VM_AnimeGroup_User; foreach (VM_AnimeSeries_User ser in grp.AllAnimeSeries) { rawVids.AddRange(VM_ShokoServer.Instance.ShokoServices .GetVideoLocalsForAnime(ser.AniDB_ID, VM_ShokoServer.Instance.CurrentUser.JMMUserID) .Cast <VM_VideoLocal>()); } } if (frm.SelectedObject.GetType() == typeof(VM_AnimeSeries_User)) { VM_AnimeSeries_User ser = frm.SelectedObject as VM_AnimeSeries_User; rawVids.AddRange(VM_ShokoServer.Instance.ShokoServices .GetVideoLocalsForAnime(ser.AniDB_ID, VM_ShokoServer.Instance.CurrentUser.JMMUserID) .Cast <VM_VideoLocal>()); } } } else if (LoadTypeIsLast) { int number = udRandomFiles.Value.Value; rawVids = VM_ShokoServer.Instance.ShokoServices .SearchForFiles((int)FileSearchCriteria.LastOneHundred, number.ToString(), VM_ShokoServer.Instance.CurrentUser.JMMUserID) .OrderByDescending(a => a.DateTimeCreated) .CastList <VM_VideoLocal>(); } foreach (VM_VideoLocal vid in rawVids) { VM_VideoLocal_Renamed ren = new VM_VideoLocal_Renamed(); ren.VideoLocalID = vid.VideoLocalID; ren.VideoLocal = vid; ren.Success = false; FileResults.Add(ren); } FileCount = FileResults.Count; Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { Cursor = Cursors.Arrow; EnableDisableControls(true); } }
public void SetResults(FileResults results) { _results = results; }