Fix account signature preferences during draft creation (#314)
* Pass account ID instead of account to draft creation method, since account object can be stale. * Configure await
This commit is contained in:
@@ -103,9 +103,9 @@ namespace Wino.Core.Domain.Interfaces
|
|||||||
/// Creates a draft MailCopy and MimeMessage based on the given options.
|
/// Creates a draft MailCopy and MimeMessage based on the given options.
|
||||||
/// For forward/reply it would include the referenced message.
|
/// For forward/reply it would include the referenced message.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="composerAccount">Account which should have new draft.</param>
|
/// <param name="accountId">AccountId which should have new draft.</param>
|
||||||
/// <param name="draftCreationOptions">Options like new email/forward/draft.</param>
|
/// <param name="draftCreationOptions">Options like new email/forward/draft.</param>
|
||||||
/// <returns>Draft MailCopy and Draft MimeMessage as base64.</returns>
|
/// <returns>Draft MailCopy and Draft MimeMessage as base64.</returns>
|
||||||
Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(MailAccount composerAccount, DraftCreationOptions draftCreationOptions);
|
Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(Guid accountId, DraftCreationOptions draftCreationOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,8 +51,9 @@ namespace Wino.Core.Services
|
|||||||
_preferencesService = preferencesService;
|
_preferencesService = preferencesService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(MailAccount composerAccount, DraftCreationOptions draftCreationOptions)
|
public async Task<(MailCopy draftMailCopy, string draftBase64MimeMessage)> CreateDraftAsync(Guid accountId, DraftCreationOptions draftCreationOptions)
|
||||||
{
|
{
|
||||||
|
var composerAccount = await _accountService.GetAccountAsync(accountId).ConfigureAwait(false);
|
||||||
var createdDraftMimeMessage = await CreateDraftMimeAsync(composerAccount, draftCreationOptions);
|
var createdDraftMimeMessage = await CreateDraftMimeAsync(composerAccount, draftCreationOptions);
|
||||||
|
|
||||||
var draftFolder = await _folderService.GetSpecialFolderByAccountIdAsync(composerAccount.Id, SpecialFolderType.Draft);
|
var draftFolder = await _folderService.GetSpecialFolderByAccountIdAsync(composerAccount.Id, SpecialFolderType.Draft);
|
||||||
|
|||||||
@@ -777,7 +777,7 @@ namespace Wino.Mail.ViewModels
|
|||||||
MailToUri = _launchProtocolService.MailToUri
|
MailToUri = _launchProtocolService.MailToUri
|
||||||
};
|
};
|
||||||
|
|
||||||
var (draftMailCopy, draftBase64MimeMessage) = await _mailService.CreateDraftAsync(account, draftOptions).ConfigureAwait(false);
|
var (draftMailCopy, draftBase64MimeMessage) = await _mailService.CreateDraftAsync(account.Id, draftOptions).ConfigureAwait(false);
|
||||||
|
|
||||||
var draftPreparationRequest = new DraftPreparationRequest(account, draftMailCopy, draftBase64MimeMessage);
|
var draftPreparationRequest = new DraftPreparationRequest(account, draftMailCopy, draftBase64MimeMessage);
|
||||||
await _winoRequestDelegator.ExecuteAsync(draftPreparationRequest);
|
await _winoRequestDelegator.ExecuteAsync(draftPreparationRequest);
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ namespace Wino.Mail.ViewModels
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var (draftMailCopy, draftBase64MimeMessage) = await _mailService.CreateDraftAsync(initializedMailItemViewModel.AssignedAccount, draftOptions).ConfigureAwait(false);
|
var (draftMailCopy, draftBase64MimeMessage) = await _mailService.CreateDraftAsync(initializedMailItemViewModel.AssignedAccount.Id, draftOptions).ConfigureAwait(false);
|
||||||
|
|
||||||
var draftPreparationRequest = new DraftPreparationRequest(initializedMailItemViewModel.AssignedAccount, draftMailCopy, draftBase64MimeMessage, initializedMailItemViewModel.MailCopy);
|
var draftPreparationRequest = new DraftPreparationRequest(initializedMailItemViewModel.AssignedAccount, draftMailCopy, draftBase64MimeMessage, initializedMailItemViewModel.MailCopy);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user