Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.DeliveryClient.AttemptDelivery C# (CSharp) Метод

AttemptDelivery() публичный Метод

Attempts the delivery. Delivery will fail if any of the policies IsAllowed() returns false. The delivery are attmpted in batches of fixed size. To increase or decrease the size, you can override MaxRequestSize in MobileAnalyticsManagerConfig.Amazon.MobileAnalytics.MobileAnalyticsManager.MobileAnalyticsManagerConfig
public AttemptDelivery ( ) : void
Результат void
        public void AttemptDelivery()
        {
            lock (_deliveryLock)
            {
                if (_deliveryInProgress)
                {
                    _logger.InfoFormat("Delivery already in progress, failing new delivery");
                    return;
                }
                _deliveryInProgress = true;
            }

            //validate all the policies before attempting the delivery
            foreach (IDeliveryPolicy policy in _deliveryPolicies)
            {
                if (!policy.IsAllowed())
                {
                    _logger.InfoFormat("Policy restriction: {0}", policy.GetType().Name);
                    lock (_deliveryLock)
                    {
                        _deliveryInProgress = false;
                    }
                    return;
                }
            }

            List<JsonData> allEventList = _eventStore.GetEvents(_appID, MAX_ALLOWED_SELECTS);
            if (allEventList.Count == 0)
            {
                _logger.InfoFormat("No Events to deliver.");
                lock (_deliveryLock)
                {
                    _deliveryInProgress = false;
                }
                return;
            }

            List<string> submitEventsIdList = new List<string>();
            List<Amazon.MobileAnalytics.Model.Event> submitEventsList = new List<Amazon.MobileAnalytics.Model.Event>();
            long submitEventsLength = 0L;

            foreach (JsonData eventData in allEventList)
            {
                string eventString = (string)eventData["event"];
                submitEventsLength += eventString.Length;
                if (submitEventsLength < _maConfig.MaxRequestSize)
                {
                    try {
                        Amazon.MobileAnalytics.Model.Event _analyticsEvent = JsonMapper.ToObject<Amazon.MobileAnalytics.Model.Event>(eventString);
                        submitEventsList.Add(_analyticsEvent);
                    } catch (JsonException e) {
                        _logger.Error(e, "Could not load event from event store, discarding.");
                    }

                    submitEventsIdList.Add(eventData["id"].ToString());
                    
                }
                else
                {
                    SubmitEvents(submitEventsIdList, submitEventsList);
                    submitEventsIdList = new List<string>();
                    submitEventsList = new List<Amazon.MobileAnalytics.Model.Event>();
                    submitEventsLength = 0L;
                }
            }

            if (submitEventsLength > 0)
                SubmitEvents(submitEventsIdList, submitEventsList);
        }