public GoalRecordAppInstall(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row)
        {
            if (_goalIdOrdinal == -1)
            {
                _goalIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalId");
            }

            if (_appStoreIdOrdinal == -1)
            {
                _appStoreIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AppStoreId");
            }

            if (_appPlatformOrdinal == -1)
            {
                _appPlatformOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AppPlatform");
            }

            if (_lookbackWindowOrdinal == -1)
            {
                _lookbackWindowOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "LookbackWindow");
            }

            if (_goalValueOrdinal == -1)
            {
                _goalValueOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValue");
            }

            if (_AccountIdOrdinal == -1)
            {
                _AccountIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AccountId");
            }

            if (_goalTrackingType == -1)
            {
                _goalTrackingType = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalTrackingType");
            }

            if (_goalValueSourceIdOrdinal == -1)
            {
                _goalValueSourceIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValueSourceId");
            }

            if (_customerIdOrdinal == -1)
            {
                _customerIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "CustomerId");
            }

            GoalId            = (int)row[_goalIdOrdinal];
            AppStoreId        = (string)row[_appStoreIdOrdinal];
            AppPlatform       = (string)row[_appPlatformOrdinal];
            LookbackWindow    = (int)row[_lookbackWindowOrdinal];
            GoalValue         = (double?)row[_goalValueOrdinal];
            AccountId         = (int?)row[_AccountIdOrdinal];
            GoalTrackingType  = (short)row[_goalTrackingType];
            GoalValueSourceId = (short)row[_goalValueSourceIdOrdinal];
            CustomerId        = (int)row[_customerIdOrdinal];
        }
Example #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="columnMetadata"> Column name to column index mapping. </param>
        /// <param name="row"></param>
        protected TagToGoalRecord(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row)
        {
            if (_tagIdOrdinal == -1)
            {
                _tagIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "TagId");
            }

            if (_goalIdOrdinal == -1)
            {
                _goalIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalId");
            }

            if (_lookbackWindowOrdinal == -1)
            {
                _lookbackWindowOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "LookbackWindow");
            }

            if (_goalValue == -1)
            {
                _goalValue = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValue");
            }

            if (_goalTrackingType == -1)
            {
                _goalTrackingType = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalTrackingType");
            }

            if (_accountIdOrdinal == -1)
            {
                _accountIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AccountId");
            }

            if (_goalValueSourceIdOrdinal == -1)
            {
                _goalValueSourceIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValueSourceId");
            }

            TagId             = (int)row[_tagIdOrdinal];
            GoalId            = (int)row[_goalIdOrdinal];
            LookbackWindow    = (int)row[_lookbackWindowOrdinal];
            GoalValue         = (double?)row[_goalValue];
            GoalTrackingType  = (short)row[_goalTrackingType];
            AccountId         = (int?)row[_accountIdOrdinal];
            GoalValueSourceId = (short)row[_goalValueSourceIdOrdinal];
        }
        public TagToCustomerRecord(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row)
        {
            if (_tagIdOrdinal == -1)
            {
                _tagIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "TagId");
            }

            if (_customerIdOrdinal == -1)
            {
                _customerIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "CustomerId");
            }

            if (_tagNameOrdinal == -1)
            {
                _tagNameOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "TagName");
            }

            TagId      = (int)row[_tagIdOrdinal];
            CustomerId = (int)row[_customerIdOrdinal];
            TagName    = (string)row[_tagNameOrdinal];
        }
Example #4
0
        public TagToGoalRecordDestinationUrl(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row)
            : base(columnMetadata, row)
        {
            GoalType = GoalType.DestinationUrl;

            if (_destinationUrlOrdinal == -1)
            {
                _destinationUrlOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "DestinationURL");
            }

            if (_comparisonOperatorOrdinal == -1)
            {
                _comparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "DestinationURLOperator");
            }

            var destinationUrl         = (string)row[_destinationUrlOrdinal];
            var comparisonOperatorByte = (byte)row[_comparisonOperatorOrdinal];

            if (!GoalUtils.IsValidComparisonOperator(comparisonOperatorByte))
            {
                throw new Exception(String.Format("DestinationUrl comparison operator value {0} is outside of range.", comparisonOperatorByte));
            }

            var comparisonOperator = (GoalComparisonOperator)comparisonOperatorByte;

            if (!GoalUtils.IsValidStringOperator(comparisonOperator))
            {
                throw new Exception(String.Format("Comparison operator value {0} is not supported by {1} goal type.", comparisonOperator.ToString(), GoalType));
            }

            DestinationUrlProperty = new GoalProperty <string>
            {
                ComparisonOperator = comparisonOperator,
                PropertyValue      = destinationUrl.Trim()
            };
        }
        public TagToGoalRecordPagesPerVisit(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row)
            : base(columnMetadata, row)
        {
            GoalType = GoalType.PagesPerVisit;

            if (_numberOfPagesOrdinal == -1)
            {
                _numberOfPagesOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "PageVisitGoal");
            }

            if (_comparisonOperatorOrdinal == -1)
            {
                _comparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "PageVisitOperator");
            }

            var numberOfPages     = (short)row[_numberOfPagesOrdinal];
            var valueOperatorByte = (byte)row[_comparisonOperatorOrdinal];

            if (!GoalUtils.IsValidValueOperator(valueOperatorByte))
            {
                throw new Exception(String.Format("NumberOfPages comparison operator value {0} is outside of range.", valueOperatorByte));
            }

            var valueComparisonOperator = (ValueComparisonOperator)valueOperatorByte;

            if (!GoalUtils.IsValidNumericOperator(valueComparisonOperator))
            {
                throw new Exception(String.Format("Value operator value {0} is not supported by {1} goal type.", valueComparisonOperator.ToString(), GoalType));
            }

            NumberOfPagesProperty = new GoalProperty <short>
            {
                ValueComparisionOperator = valueComparisonOperator,
                PropertyValue            = numberOfPages
            };
        }
Example #6
0
        public TagToGoalRecordCustomEvent(Dictionary <string, int> columnMetadata, object[] row)
            : base(columnMetadata, row)
        {
            GoalType = GoalType.CustomEvent;

            if (_eventCategoryOrdinal == -1)
            {
                _eventCategoryOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventCategory");
            }

            if (_categoryComparisonOperatorOrdinal == -1)
            {
                _categoryComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventCategoryOperator");
            }

            if (_eventNameOrdinal == -1)
            {
                _eventNameOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventName");
            }

            if (_nameComparisonOperatorOrdinal == -1)
            {
                _nameComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventNameOperator");
            }

            if (_eventLabelOrdinal == -1)
            {
                _eventLabelOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventLabel");
            }

            if (_labelComparisonOperatorOrdinal == -1)
            {
                _labelComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventLabelOperator");
            }

            if (_eventValueOrdinal == -1)
            {
                _eventValueOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventValue");
            }

            if (_valueComparisonOperatorOrdinal == -1)
            {
                _valueComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventValueOperator");
            }

            var eventCategory = (string)row[_eventCategoryOrdinal];
            var categoryComparisonOperatorByte = (byte?)row[_categoryComparisonOperatorOrdinal];

            EventCategoryProperty = CreateCustomEventGoalProperty("Category", eventCategory, categoryComparisonOperatorByte);

            var eventName = (string)row[_eventNameOrdinal];
            var nameComparisonOperatorByte = (byte?)row[_nameComparisonOperatorOrdinal];

            EventActionProperty = CreateCustomEventGoalProperty("Name", eventName, nameComparisonOperatorByte);

            var eventLabel = (string)row[_eventLabelOrdinal];
            var labelComparisonOperatorByte = (byte?)row[_labelComparisonOperatorOrdinal];

            EventLabelProperty = CreateCustomEventGoalProperty("Label", eventLabel, labelComparisonOperatorByte);

            var eventValue = (double?)row[_eventValueOrdinal];
            var valueComparisonOperatorByte = (byte?)row[_valueComparisonOperatorOrdinal];

            if (eventValue != null)
            {
                if (valueComparisonOperatorByte == null)
                {
                    throw new Exception("ValueComparisonOperator value cannot be null when EventValue value is not null.");
                }

                if (!GoalUtils.IsValidValueOperator((byte)valueComparisonOperatorByte))
                {
                    throw new Exception(String.Format("ValueComparisonOperator value {0} is outside of range.", valueComparisonOperatorByte));
                }

                var valueOperator = (ValueComparisonOperator)valueComparisonOperatorByte;

                if (!GoalUtils.IsValidNumericOperator(valueOperator))
                {
                    throw new Exception(String.Format("ValueOperator value {0} is not supported by {1} goal type.", valueOperator.ToString(), GoalType));
                }

                EventValueProperty = new GoalProperty <double>
                {
                    ValueComparisionOperator = valueOperator,
                    PropertyValue            = (double)eventValue
                };
            }
        }