private List <string> ExportFilesTo(IEnumerable <IFileData> files, string directory) { var sourcePorts = Util.GetSourcePortsData(DataSourceAdapter); HashSet <string> exportedNames = new HashSet <string>(); int collision = 2; foreach (IFileData file in files) { if (!File.Exists(Path.Combine(DataDirectory.GetFullPath(), file.FileName))) { continue; } string fileName = GetNiceFileName(file, sourcePorts); while (exportedNames.Contains(fileName)) { fileName = $"{Path.GetFileNameWithoutExtension(fileName)}_{collision}{Path.GetExtension(fileName)}"; collision++; } exportedNames.Add(fileName); CopyFile(file, Path.Combine(directory, fileName)); } return(exportedNames.ToList()); }
private List <StatsBind> GetStatsBind(IEnumerable <IStatsData> stats) { List <ISourcePort> sourcePorts = Util.GetSourcePortsData(DataSourceAdapter); IEnumerable <StatsBind> statsBind = from stat in stats join sp in sourcePorts on stat.SourcePortID equals sp.SourcePortID select new StatsBind(stat.MapName, stat.FormattedKills, stat.FormattedSecrets, stat.FormattedItems, TimeSpan.FromSeconds(stat.LevelTime), stat.RecordTime, sp.Name, stat); return(statsBind.ToList()); }
protected void SetData(DataGridView dgvMain, IGameFile gameFile) { if (GameFile != null && GameFile.GameFileID.HasValue) { IEnumerable <IFileData> files = DataSourceAdapter.GetFiles(gameFile, FileType); List <ISourcePortData> sourcePorts = Util.GetSourcePortsData(DataSourceAdapter); var items = from file in files join sp in sourcePorts on file.SourcePortID equals sp.SourcePortID select new { Description = file.Description, DateCreated = file.DateCreated, SourcePortName = sp.Name, FileData = file }; dgvMain.DataSource = items.ToList(); dgvMain.ContextMenuStrip = m_menu; m_files = files.ToArray(); } else { dgvMain.DataSource = null; m_files = new IFileData[] { }; } }
public bool Export() { List <IFileData> selectedFiles = GetSelectedFiles(); if (selectedFiles.Count == 0) { return(false); } var sourcePorts = Util.GetSourcePortsData(DataSourceAdapter); SaveFileDialog dialog = new SaveFileDialog(); dialog.FileName = GetNiceFileName(selectedFiles[0], sourcePorts); if (dialog.ShowDialog(this) == DialogResult.OK) { CopyFile(selectedFiles[0], dialog.FileName); return(true); } return(false); }