Пример #1
0
        /// <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; }));
            }
        }