/// <summary> /// Determines whether this instance and another specified mail header object have the same value. /// </summary> /// <param name="obj">The mail header to compare to this instance.</param> /// <returns>true if the value of the value parameter is the same as this instance; otherwise, false.</returns> public override bool Equals(object obj) { MailHeader mailHeader = (MailHeader)obj; return(mailHeader.Mailbox.FullName.Equals(Mailbox.FullName, StringComparison.OrdinalIgnoreCase) && mailHeader.Uid.Equals(Uid, StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// Adds or updates the mail header for the specified account and mailbox. /// </summary> /// <param name="accountSettingsData">The account settings data.</param> /// <param name="mailbox">The mailbox.</param> /// <param name="mailHeader">The mail header.</param> public void AddOrUpdate(AccountSettingsData accountSettingsData, Mailbox mailbox, MailHeader mailHeader) { try { // Ensure the mail header dictionary entry exists EnsureMailHeader(accountSettingsData, mailbox); // If the header exists - update it if (this[accountSettingsData.EmailAddress][mailbox.FullName].Contains(mailHeader)) { this[accountSettingsData.EmailAddress][mailbox.FullName][this[accountSettingsData.EmailAddress][mailbox.FullName].IndexOf(mailHeader)] = mailHeader; } // Else if the header does not exist = add it else { this[accountSettingsData.EmailAddress][mailbox.FullName].Add(mailHeader); } } catch (Exception ex) { LogFile.Instance.LogError(accountSettingsData.EmailAddress, mailbox.Name, ex.ToString()); } }