public override byte[] ToBytes() { var versionBytes = BitConverter.GetBytes(Version); var servicesBytes = BitConverter.GetBytes(Services); var timeStampBytes = BitConverter.GetBytes(TimeStamp.Ticks); // We leave out the IPAddress TimeStamp in the Version Message. var addressToBytes = AddressTo.ToBytes().Skip(4).ToArray(); var addressFromBytes = AddressFrom.ToBytes().Skip(4).ToArray(); var nonceBytes = BitConverter.GetBytes(Nonce); var userAgentBytes = UserAgent.ToBytes(); var startHeightBytes = BitConverter.GetBytes(StartHeight); var relayBytes = BitConverter.GetBytes(Relay); return(versionBytes .Concat(servicesBytes) .Concat(timeStampBytes) .Concat(addressToBytes) .Concat(addressFromBytes) .Concat(nonceBytes) .Concat(userAgentBytes) .Concat(startHeightBytes) .Concat(relayBytes) .ToArray()); }
private void SendEmail() { var message = new MailMessage { BodyEncoding = Encoding.UTF8, SubjectEncoding = Encoding.UTF8 }; var addFDisplay = AddressFromDisplay?.Trim(); message.From = string.IsNullOrEmpty(addFDisplay) ? new MailAddress(AddressFrom?.Trim()) : new MailAddress(AddressFrom?.Trim(), addFDisplay); AddressBcc = AddressBcc?.Replace(",", ";").Replace("|", ";"); AddressCc = AddressCc?.Replace(",", ";").Replace("|", ";"); AddressTo = AddressTo?.Replace(",", ";").Replace("|", ";"); AddressBcc.SplitAndTrim(';').Each(a => { if (!string.IsNullOrEmpty(a)) { message.Bcc.Add(new MailAddress(a)); } }); AddressCc.SplitAndTrim(';').Each(a => { if (!string.IsNullOrEmpty(a)) { message.CC.Add(new MailAddress(a)); } }); AddressTo.SplitAndTrim(';').Each(a => { if (!string.IsNullOrEmpty(a)) { message.To.Add(new MailAddress(a)); } }); var msg = string.Empty; lock (_buffer) { var first = _buffer.First(); message.Subject = _buffer.Count == 1 ? string.Format("{0} {1} {2}: {3}", first.Timestamp.ToString("dd/MM/yyyy HH:mm:ss"), first.MachineName, first.ApplicationName, first.Message) : string.Format("{0} {1} {2}: Messages", first.Timestamp.ToString("dd/MM/yyyy HH:mm:ss"), first.MachineName, first.ApplicationName); foreach (var innerItem in _buffer) { msg += string.Format("{0}\r\nMachine Name: {1} [{2}]\r\nAplicationName: {3}\r\nMessage: {4}", innerItem.Timestamp.ToString("dd/MM/yyyy HH:mm:ss"), innerItem.MachineName, innerItem.EnvironmentName, innerItem.ApplicationName, innerItem.Message); if (innerItem.Exception != null) { if (!string.IsNullOrEmpty(innerItem.Exception.ExceptionType)) { msg += "\r\nException: " + innerItem.Exception.ExceptionType; } if (!string.IsNullOrEmpty(innerItem.Exception.StackTrace)) { msg += "\r\nStack Trace: " + innerItem.Exception.StackTrace; } } if (innerItem != _buffer.Last()) { msg += "\r\n-------------------------------\r\n"; } } _buffer.Clear(); } message.Body = msg; if (_smtp == null) { return; } try { _smtp.Send(message); } catch (Exception e) { Core.Log.Error("SMTPERROR: {0}", e.Message); } finally { _waiting = false; } }