void ResendClick(object sender, EventArgs e)
{
if (_domainGrid.SelectedRows.Count == 0)
return;
var envelopes = _domainGrid.SelectedRows.Cast<DataGridViewRow>()
.Select(v => v.DataBoundItem)
.Cast<DomainLogDisplayItem>()
.Select(d => d).ToArray();
var all = envelopes
.SelectMany(d => d.Item.Items.Select(i => i.Content)).ToArray();
// don`t resend set of commands
if (_domainGrid.SelectedRows.Count > 1)
{
Log("Selected too many commands. Please, select only one!");
return;
}
if (Debugger.IsAttached)
{
foreach (var o in envelopes)
{
var saveEnvelopeData = _serializer.SaveEnvelopeData(o.Item);
Trace.WriteLine(Convert.ToBase64String(saveEnvelopeData));
}
}
var items = all
.OfType<IRecipeCommand>()
.ToArray();
// don`t resend set of commands
if (items.Length > 1)
{
Log("Too many commands in selected envelope. Please, select only one!");
//_services.Client.Put(all.ToArray());
return;
}
if (items.Length == 0)
{
Log(@"No commands to send.");
return;
}
var text = new StringBuilder();
text
.AppendFormat("Do you want to send message? You will have to live with the consequences!")
.AppendLine()
.Append(string.Join(";", items.Select(c => c.GetType().Name)));
if (
MessageBox.Show(this, text.ToString(), @"Send confirmation", MessageBoxButtons.YesNo,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
foreach (var shelfCommand in items)
{
_services.SendCommand(shelfCommand);
}
}
}