diff --git a/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs b/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs index a361144a..756243ab 100644 --- a/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs +++ b/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs @@ -8,6 +8,7 @@ namespace Wino.Core.Domain.Interfaces public interface IFolderMenuItem : IBaseFolderMenuItem { MailAccount ParentAccount { get; } + void UpdateParentAccounnt(MailAccount account); } public interface IMergedAccountFolderMenuItem : IBaseFolderMenuItem { } diff --git a/Wino.Core/MenuItems/AccountMenuItem.cs b/Wino.Core/MenuItems/AccountMenuItem.cs index 3bd7d13f..8ebbb799 100644 --- a/Wino.Core/MenuItems/AccountMenuItem.cs +++ b/Wino.Core/MenuItems/AccountMenuItem.cs @@ -58,6 +58,16 @@ namespace Wino.Core.MenuItems Parameter = account; AccountName = account.Name; AttentionReason = account.AttentionReason; + + if (SubMenuItems == null) return; + + foreach (var item in SubMenuItems) + { + if (item is IFolderMenuItem folderMenuItem) + { + folderMenuItem.UpdateParentAccounnt(account); + } + } } private void UpdateFixAccountIssueMenuItem() diff --git a/Wino.Core/MenuItems/FolderMenuItem.cs b/Wino.Core/MenuItems/FolderMenuItem.cs index a192b70e..5013794f 100644 --- a/Wino.Core/MenuItems/FolderMenuItem.cs +++ b/Wino.Core/MenuItems/FolderMenuItem.cs @@ -46,7 +46,7 @@ namespace Wino.Core.MenuItems public IEnumerable HandlingFolders => new List() { Parameter }; - public MailAccount ParentAccount { get; } + public MailAccount ParentAccount { get; private set; } public string AssignedAccountName => ParentAccount?.Name; @@ -71,5 +71,7 @@ namespace Wino.Core.MenuItems } public override string ToString() => FolderName; + + public void UpdateParentAccounnt(MailAccount account) => ParentAccount = account; } }