Example #1
0
        public override IUTOutcome Build()
        {
            Dictionary <string, string> customParameters = null;

            if (this.FieldsRawValuesByName != null)
            {
                customParameters = new Dictionary <string, string>(this.FieldsRawValuesByName);
            }

            this.EventParametersAccumulator = new UTEvent(
                this.EventParametersAccumulator.Timestamp,
                customParameters,
                this.EventParametersAccumulator.DefinitionId,
                this.EventParametersAccumulator.ItemId,
                this.EventParametersAccumulator.EngagementValue,
                this.EventParametersAccumulator.ParentEventId,
                this.EventParametersAccumulator.Text,
                this.EventParametersAccumulator.Duration,
                this.EventParametersAccumulator.TrackingInteractionId
                );

            var result = new UTOutcome(this.EventParametersAccumulator, this.CurrencyCodeValue, this.MonetaryValueValue);

            return(result);
        }
Example #2
0
        public override ITrackOutcomeRequest Build()
        {
#warning @igk check that all required fields is not null here!!!
            this.CheckWholeObjectForCorrectnessOrThrow();

            Dictionary <string, string> customParameters = null;

            if (this.FieldsRawValuesByName != null)
            {
                customParameters = new Dictionary <string, string>(this.FieldsRawValuesByName);
            }

            this.EventParametersAccumulator = new UTEvent(
                this.EventParametersAccumulator.Timestamp,
                customParameters,
                this.EventParametersAccumulator.DefinitionId,
                this.EventParametersAccumulator.ItemId,
                this.EventParametersAccumulator.EngagementValue,
                this.EventParametersAccumulator.ParentEventId,
                this.EventParametersAccumulator.Text,
                this.EventParametersAccumulator.Duration,
                this.EventParametersAccumulator.TrackingInteractionId
                );

            UTOutcome outcome = new UTOutcome(this.EventParametersAccumulator, this.CurrencyCodeValue, this.MonetaryValueValue);

            TrackOutcomeParameters result = new TrackOutcomeParameters(null, outcome);

            return(result);
        }
        public ITrackOutcomeRequest FillTrackOutcomeGaps(ITrackOutcomeRequest userRequest)
        {
            var utOutcome = userRequest.Outcome.DeepCopyUTOutcome();

            //order matters!
            IUTSessionConfig mergedSessionConfig = this.SessionConfigMerger.FillSessionConfigGaps(userRequest.SessionConfig);

            var utEvent = this.ApplyActiveInteraction(utOutcome, mergedSessionConfig);

            utEvent = this.ApplyDeviceIdentifier(utEvent);

            utOutcome = new UTOutcome(utEvent, utOutcome.CurrencyCode, utOutcome.MonetaryValue);

            return(new TrackOutcomeParameters(mergedSessionConfig, utOutcome));
        }