예제 #1
0
        private List <OutlookMailBox> GetOutlookMailBoxes(Folders rootFolders)
        {
            var mailBoxes = new List <OutlookMailBox>();

            if (rootFolders.Count > 0)
            {
                foreach (Folder rootFolder in rootFolders)
                {
                    var mailBoxName = rootFolder.Name;

                    //All mailBoxes Scanned Leave Public calendars and Folders
                    if (mailBoxName.Contains("Public Folders"))
                    {
                        Marshal.FinalReleaseComObject(rootFolder);
                        continue;
                    }

                    var mailBox = new OutlookMailBox
                    {
                        Name    = mailBoxName,
                        EntryId = rootFolder.EntryID,
                        StoreId = rootFolder.StoreID
                    };
                    mailBoxes.Add(mailBox);

                    GetTaskLists(rootFolder, mailBox.Folders);

                    Marshal.FinalReleaseComObject(rootFolder);
                }
            }
            return(mailBoxes);
        }
        private List<OutlookMailBox> GetOutlookMailBoxes(Folders rootFolders)
        {
            var mailBoxes = new List<OutlookMailBox>();
            if (rootFolders.Count > 0)
            {
                foreach (Folder rootFolder in rootFolders)
                {
                    var mailBoxName = rootFolder.Name;

                    //All mailBoxes Scanned Leave Public calendars and Folders
                    if (mailBoxName.Contains("Public Folders"))
                    {
                        Marshal.FinalReleaseComObject(rootFolder);
                        continue;
                    }

                    var mailBox = new OutlookMailBox
                    {
                        Name = mailBoxName,
                        EntryId = rootFolder.EntryID,
                        StoreId = rootFolder.StoreID
                    };
                    mailBoxes.Add(mailBox);

                    GetTaskLists(rootFolder, mailBox.Folders);

                    Marshal.FinalReleaseComObject(rootFolder);
                }
            }
            return mailBoxes;
        }
        private List<OutlookMailBox> GetOutlookMailBoxes(Folders rootFolders)
        {
            var mailBoxes = new List<OutlookMailBox>();
            if (rootFolders.Count > 0)
            {
                foreach (Folder rootFolder in rootFolders)
                {
                    try
                    {
                        if (rootFolder == null)
                        {
                            continue;
                        }
                        
                        var mailBoxName = rootFolder.Name;

                        //All mailBoxes Scanned Leave Public calendars and Folders
                        if (mailBoxName.Contains("Public Folders"))
                        {
                            Marshal.FinalReleaseComObject(rootFolder);
                            continue;
                        }

                        var mailBox = new OutlookMailBox
                        {
                            Name = mailBoxName,
                            EntryId = rootFolder.EntryID,
                            StoreId = rootFolder.StoreID
                        };
                        mailBoxes.Add(mailBox);

                        GetCalendars(rootFolder, mailBox.Folders);
                    }
                    catch (Exception exception)
                    {
                        Logger.Error(exception);
                    }
                    finally
                    {
                        Marshal.FinalReleaseComObject(rootFolder);
                    }
                }
            }
            return mailBoxes;
        }