private async void Send() { if (IsBusy) { return; } IsBusy = true; MailsSending = 0; SendCommand.RaiseCanExecuteChanged(); try { var reipients = Recipients.Distinct(MailRecipientViewModel.EMailComparer).Select(recipient => recipient.EMail); var attaches = Attachments.Select(attachment => attachment.FilePath).ToArray(); foreach (var reipient in reipients) { await _mailSender.EmailSendAsync(From, reipient, Subject, Message, attaches, ReadConfirmation, ReceiptConfirmation); ++MailsSending; } } catch (Exception ex) { await _dialogService.ErrorAlarmAsync(ex.Message, "Sending Error"); } finally { IsBusy = false; MailsSending = 0; SendCommand.RaiseCanExecuteChanged(); } }