Create sub folder, delete folder, storage settings, some ui adjustments on threads.
This commit is contained in:
@@ -130,6 +130,11 @@ public class WinoRequestDelegator : IWinoRequestDelegator
|
||||
await QueueRequestAsync(request, accountId);
|
||||
await SendSyncActionsAddedAsync([request], accountId);
|
||||
await QueueSynchronizationAsync(accountId);
|
||||
|
||||
if (folderRequest.Action is FolderOperation.Delete or FolderOperation.CreateSubFolder)
|
||||
{
|
||||
await QueueFoldersOnlySynchronizationAsync(accountId);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task ExecuteAsync(DraftPreparationRequest draftPreperationRequest)
|
||||
@@ -203,6 +208,18 @@ public class WinoRequestDelegator : IWinoRequestDelegator
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task QueueFoldersOnlySynchronizationAsync(Guid accountId)
|
||||
{
|
||||
var options = new MailSynchronizationOptions()
|
||||
{
|
||||
AccountId = accountId,
|
||||
Type = MailSynchronizationType.FoldersOnly
|
||||
};
|
||||
|
||||
WeakReferenceMessenger.Default.Send(new NewMailSynchronizationRequested(options));
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private async Task SendSyncActionsAddedAsync(IEnumerable<IRequestBase> requests, Guid accountId, string accountName = null)
|
||||
{
|
||||
if (accountName == null)
|
||||
|
||||
@@ -255,15 +255,29 @@ public class WinoRequestProcessor : IWinoRequestProcessor
|
||||
change = new MarkFolderAsReadRequest(folder, unreadItems);
|
||||
|
||||
break;
|
||||
//case FolderOperation.Delete:
|
||||
// var isConfirmed = await _dialogService.ShowConfirmationDialogAsync($"'{folderStructure.FolderName}' is going to be deleted. Do you want to continue?", "Are you sure?", "Yes delete.");
|
||||
case FolderOperation.Delete:
|
||||
var deleteQuestion = string.Format(Translator.DialogMessage_DeleteAccountConfirmationMessage, folder.FolderName);
|
||||
var shouldDelete = await _dialogService.ShowConfirmationDialogAsync(deleteQuestion, Translator.FolderOperation_Delete, Translator.FolderOperation_Delete);
|
||||
|
||||
// if (isConfirmed)
|
||||
// change = new DeleteFolderRequest(accountId, folderStructure.RemoteFolderId, folderStructure.FolderId);
|
||||
if (shouldDelete)
|
||||
{
|
||||
change = new DeleteFolderRequest(folder);
|
||||
}
|
||||
|
||||
// break;
|
||||
//default:
|
||||
// throw new NotImplementedException();
|
||||
break;
|
||||
case FolderOperation.CreateSubFolder:
|
||||
var subFolderName = await _dialogService.ShowTextInputDialogAsync(
|
||||
string.Empty,
|
||||
Translator.FolderOperation_CreateSubFolder,
|
||||
Translator.DialogMessage_RenameFolderMessage,
|
||||
Translator.FolderOperation_CreateSubFolder);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(subFolderName))
|
||||
{
|
||||
change = new CreateSubFolderRequest(folder, subFolderName.Trim());
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return change;
|
||||
|
||||
Reference in New Issue
Block a user