private IRDOFolder FindOrCreate(IRDOFolder root, string name, int defKind, bool isDefKindSet = true) { RDOFolder2 folder; try { folder = (isDefKindSet ? _session.GetDefaultFolder((rdoDefaultFolders)defKind) : root.Folders[name]) as RDOFolder2; } catch (Exception) { folder = root.Folders.Add(name) as RDOFolder2; if (isDefKindSet) { folder?.SetAsDefaultFolder(defKind); } } if (folder == null) { folder = root.Folders.Add(name) as RDOFolder2; if (isDefKindSet) { folder?.SetAsDefaultFolder(defKind); } } return(folder); }
private IRDOFolder GetFolderByNameOrCreate(IRDOFolder rootFolder, string name, bool isRoot = true) { if (!isRoot) { return(FindOrCreate(rootFolder, name, 0, false)); } switch (name.ToLower()) { case "inbox": return(FindOrCreate(rootFolder, "Skrzynka odbiorcza", (int)rdoDefaultFolders.olFolderInbox)); case "trash": return(FindOrCreate(rootFolder, "Elementy usunięte", (int)rdoDefaultFolders.olFolderDeletedItems)); case "sent": return(FindOrCreate(rootFolder, "Elementy wysłane", (int)rdoDefaultFolders.olFolderSentMail)); case "junk": return(FindOrCreate(rootFolder, "Wiadomości-śmieci", (int)rdoDefaultFolders.olFolderJunk, false)); case "archives": return(FindOrCreate(rootFolder, "Archiwum", (int)rdoDefaultFolders.olFolderArchive, false)); case "drafts": return(FindOrCreate(rootFolder, "Wersje robocze", (int)rdoDefaultFolders.olFolderDrafts)); case "unsent messages": return(FindOrCreate(rootFolder, "Skrzynka nadawcza", (int)rdoDefaultFolders.olFolderOutbox)); default: return(FindOrCreate(rootFolder, name, 0, false)); } }
private void ConvertFolder(string path, IRDOFolder rootFolder, bool isRoot = true) { foreach (var file in Directory.GetFiles(path)) { if (Path.GetExtension(file) != "msf") { ReadFolder(file, GetFolderByNameOrCreate(rootFolder, Path.GetFileNameWithoutExtension(file), isRoot)); } } foreach (var directory in Directory.GetDirectories(path)) { var dirName = Path.GetFileName(directory); if (dirName?.Tail(4).ToLower() == ".sbd") { ConvertFolder(directory, GetFolderByNameOrCreate(rootFolder, dirName.Substring(0, dirName.Length - 4)), false); } } }
private void ReadFolder(string path, IRDOFolder folder) { if (folder == null) { return; } CurrentFile = path; using (var file = new StreamReader(path, Encoding.UTF8)) { var lines = new List <string>(); string line; while ((line = file.ReadLine()) != null) { if (line.StartsWith("From - ") && lines.Any()) { SaveMessage(lines, folder); lines.Clear(); } lines.Add(line); } } }
private void ConvertFolder(string path, IRDOFolder rootFolder) { if (rootFolder == null) { return; } foreach (var directory in Directory.GetDirectories(path)) { var folder = rootFolder.Folders.Add(Path.GetFileName(directory)); if (folder != null) { foreach (var file in Directory.GetFiles(directory)) { CurrentFile = file; var message = folder.Items.Add(); message.Import(file, 3); message.Sent = true; message.Save(); } } } }
private static void SaveMessage([NotNull] IReadOnlyCollection <string> lines, [NotNull] IRDOFolder folder) { if (!lines.Any()) { return; } var pathDir = Path.Combine(@"C:\Windows\Temp", folder.Name.TrimIllegalFromPath()); if (!Directory.Exists(pathDir)) { Directory.CreateDirectory(pathDir); } var pathMes = Path.Combine(pathDir, lines.First().TrimIllegalFromPath()); File.WriteAllLines(pathMes, lines); var message = folder.Items.Add(); message.Import(pathMes, 1024); message.Sent = folder.Name != "Wersje robocze"; message.Save(); File.Delete(pathMes); }