private static void AddDocument(string[] attributes, string cmd) { Document textDocument; switch (cmd) { case "AddTextDocument": textDocument = new TextDocument(); break; case "AddPDFDocument": textDocument = new PDFDocument(); break; case "AddWordDocument": textDocument = new WordDocument(); break; case "AddExcelDocument": textDocument = new ExcelDocument(); break; case "AddAudioDocument": textDocument = new AudioDocument(); break; case "AddVideoDocument": textDocument = new VideoDocument(); break; default: textDocument = new TextDocument(); break; } if (attributes.Length > 0) { IList<KeyValuePair<string, object>> attrbList = new List<KeyValuePair<string, object>>(); foreach (var attribute in attributes) { string[] attrPair = attribute.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries); attrbList.Add(new KeyValuePair<string, object>(attrPair[0], attrPair[1] as object)); } textDocument.SaveAllProperties(attrbList); allDocuments.Add(textDocument); Console.WriteLine("Document added: {0}", textDocument.Name); } else { Console.WriteLine("Document has no name"); } }