Audit.Views.DomainLogView.ResendClick C# (CSharp) Method

ResendClick() private method

private ResendClick ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        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);
                }
            }
        }