Mindscape.Raygun4Net.RaygunClient.SendCore C# (CSharp) Method

SendCore() private method

private SendCore ( PulseEventBatch batch ) : void
batch PulseEventBatch
return void
        private void SendCore(PulseEventBatch batch)
        {
            if (_sessionId == null) {
            SendPulseSessionEvent (RaygunPulseSessionEventType.SessionStart);
              }

              string version = GetVersion ();
              string os = UIDevice.CurrentDevice.SystemName;
              string osVersion = UIDevice.CurrentDevice.SystemVersion;
              string platform = Mindscape.Raygun4Net.Builders.RaygunEnvironmentMessageBuilder.GetStringSysCtl ("hw.machine");

              string machineName = null;
              try {
            machineName = UIDevice.CurrentDevice.Name;
              } catch (Exception e) {
            System.Diagnostics.Debug.WriteLine ("Exception getting device name {0}", e.Message);
              }

              RaygunIdentifierMessage user = BuildRaygunIdentifierMessage (machineName);

              RaygunPulseMessage message = new RaygunPulseMessage ();

              Debug.WriteLine ("BatchSize: " + batch.PendingEventCount);

              RaygunPulseDataMessage [] eventMessages = new RaygunPulseDataMessage[batch.PendingEventCount];
              int index = 0;
              foreach (PendingEvent pendingEvent in batch.PendingEvents) {

            RaygunPulseDataMessage dataMessage = new RaygunPulseDataMessage ();
            dataMessage.SessionId = pendingEvent.SessionId;
            dataMessage.Timestamp = pendingEvent.Timestamp;
            dataMessage.Version = version;
            dataMessage.OS = os;
            dataMessage.OSVersion = osVersion;
            dataMessage.Platform = platform;
            dataMessage.Type = "mobile_event_timing";
            dataMessage.User = user;

            string type = pendingEvent.EventType == RaygunPulseEventType.ViewLoaded ? "p" : "n";

            RaygunPulseData data = new RaygunPulseData () { Name = pendingEvent.Name, Timing = new RaygunPulseTimingMessage () { Type = type, Duration = pendingEvent.Duration } };
            RaygunPulseData [] dataArray = { data };
            string dataStr = SimpleJson.SerializeObject (dataArray);
            dataMessage.Data = dataStr;

            eventMessages [index] = dataMessage;
            index++;
              }
              message.EventData = eventMessages;

              Send (message);
        }