private IEnumerable<VB6SourceFile> ParseSourceItems(IEnumerable<string> names, VB6SourceFileType sourceFileType) { if (names == null) return Enumerable.Empty<VB6SourceFile>(); return names.Select(s => ParseSourceItem(s, sourceFileType)); }
private VB6SourceFile ParseSourceItem(string name, VB6SourceFileType sourceFileType) { var result = new VB6SourceFile(); // If the name is in two parts split by a semi-colon or comma, that is the name and fileName var parts = name.Split(new[] {";", ","}, StringSplitOptions.RemoveEmptyEntries); result.Type = sourceFileType; switch (parts.Length) { case 1: result.Name = Path.GetFileNameWithoutExtension(parts[0]); result.FileName = parts[0]; break; case 2: result.Name = parts[0]; result.FileName = parts[1]; break; default: throw new ArgumentException("The source item name has too many parts (expecting 1 or 2 parts). Name: " + name, "name"); } return result; }