/// <summary> /// Asynchronously send an enumerable set of <see cref="ITelemetry"/> items to the /// specified <see cref="EndpointAddress"/>. /// </summary> /// <param name="telemetryItems"></param> /// <param name="timeout"></param> /// <returns></returns> public Task <IHttpWebResponseWrapper> SendAsync(IEnumerable <ITelemetry> telemetryItems, TimeSpan timeout) { try { if (this.EndpointAddress == null) { return(new Task <IHttpWebResponseWrapper>(() => { return null; })); } if (telemetryItems == null) { return(new Task <IHttpWebResponseWrapper>(() => { return null; })); } if (telemetryItems.Count() <= 0) { return(new Task <IHttpWebResponseWrapper>(() => { return null; })); } var content = Serializer.Serialize(telemetryItems); var transmission = BuildTransmission(content); return(transmission.SendAsync(timeout)); } catch (Exception ex) { _eventLogger.FailedToSend(ex.Message); return(new Task <IHttpWebResponseWrapper>(() => { return null; })); } }