Пример #1
0
        private void SendAttributionRequestI()
        {
            if (_paused)
            {
                _logger.Debug("Attribution handler is paused");
                return;
            }

            if (_activityHandler.IsGdprForgotten())
            {
                _logger.Debug("Attribution request won't be fired for forgotten user");
                return;
            }

            _logger.Verbose("{0}", _attributionPackage.GetExtendedString());

            try
            {
                ResponseData responseData;
                using (var httpResponseMessage = Util.SendGetRequest(_attributionPackage, _basePath, _urlQuery))
                {
                    responseData = Util.ProcessResponse(httpResponseMessage, _attributionPackage);
                }

                // check if any package response contains information that user has opted out
                // if yes, disable SDK and flush any potentially stored packages that happened afterwards
                if (responseData.TrackingState == TrackingState.OPTED_OUT)
                {
                    _activityHandler.SetTrackingStateOptedOut();
                    return;
                }

                if (responseData is AttributionResponseData)
                {
                    CheckAttributionResponseI(responseData as AttributionResponseData);
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Failed to get attribution ({0})", Util.ExtractExceptionMessage(ex));
            }
        }