public static void AddRowValuesFromConditions(IList<ProductCondition> conditions, RowValues rowValues)
        {
            var conditionHeaderPrefix = StringTable.ProductCondition1.Remove(StringTable.ProductCondition1.Length - 1);
            var valueHeaderPrefix = StringTable.ProductValue1.Remove(StringTable.ProductValue1.Length - 1);

            for (var i = 1; i <= conditions.Count; i++)
            {
                rowValues[conditionHeaderPrefix + i] = conditions[i - 1].Operand;
                rowValues[valueHeaderPrefix + i] = conditions[i - 1].Attribute;
            }
        }
        public static void AddRowValuesFromConditions(IList<WebpageCondition> conditions, RowValues rowValues)
        {
            var conditionHeaderPrefix = StringTable.DynamicAdTargetCondition1.Remove(StringTable.DynamicAdTargetCondition1.Length - 1);
            var valueHeaderPrefix = StringTable.DynamicAdTargetValue1.Remove(StringTable.DynamicAdTargetValue1.Length - 1);

            for (var i = 1; i <= conditions.Count; i++)
            {
                rowValues[conditionHeaderPrefix + i] = conditions[i - 1].Operand.ToString();
                rowValues[valueHeaderPrefix + i] = conditions[i - 1].Argument;
            }
        }
        public static void AddConditionsFromRowValues(RowValues values, IList<WebpageCondition> conditions)
        {
            var conditionHeaderPrefix = StringTable.DynamicAdTargetCondition1.Remove(StringTable.DynamicAdTargetCondition1.Length - 1);
            var valueHeaderPrefix = StringTable.DynamicAdTargetValue1.Remove(StringTable.DynamicAdTargetValue1.Length - 1);

            for (int i = 1; i <= MaxNumberOfConditions; i++)
            {
                string webpagetCondition;
                string webpageValue;

                values.TryGetValue(conditionHeaderPrefix + i, out webpagetCondition);
                values.TryGetValue(valueHeaderPrefix + i, out webpageValue);

                if (!string.IsNullOrEmpty(webpagetCondition) || !string.IsNullOrEmpty(webpageValue))
                {
                    conditions.Add(new WebpageCondition { Operand = webpagetCondition.Parse<WebpageConditionOperand>(), Argument = webpageValue });
                }
            }
        }
        public static void AddConditionsFromRowValues(RowValues values, IList<ProductCondition> conditions)
        {
            var conditionHeaderPrefix = StringTable.ProductCondition1.Remove(StringTable.ProductCondition1.Length - 1);
            var valueHeaderPrefix = StringTable.ProductValue1.Remove(StringTable.ProductValue1.Length - 1);

            for (int i = 1; i <= MaxNumberOfConditions; i++)
            {
                string productCondition;
                string productValue;

                values.TryGetValue(conditionHeaderPrefix + i, out productCondition);
                values.TryGetValue(valueHeaderPrefix + i, out productValue);

                if (!string.IsNullOrEmpty(productCondition) || !string.IsNullOrEmpty(productValue))
                {
                    conditions.Add(new ProductCondition { Operand = productCondition, Attribute = productValue });
                }
            }
        }
        internal override void ProcessMappingsToRowValues(RowValues values)
        {
            base.ProcessMappingsToRowValues(values);

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(Experiment, "Experiment");

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            base.ProcessMappingsToRowValues(values, excludeReadonlyData);

            this.ConvertToValues(values, Mappings);
        }
Example #8
0
 internal override void WriteToRowValues(RowValues values, bool excludeReadonlyData)
 {
     this.ConvertToValues(values, Mappings);
 }
Example #9
0
        public static void AddPriceTableRowsFromRowValues(RowValues values, IList <PriceTableRow> priceTableRows)
        {
            var currencyCodePrefix          = StringTable.CurrencyCode1.Remove(StringTable.CurrencyCode1.Length - 1);
            var priceDescriptionPrefix      = StringTable.PriceDescription1.Remove(StringTable.PriceDescription1.Length - 1);
            var headerPrefix                = StringTable.Header1.Remove(StringTable.Header1.Length - 1);
            var finalMobileUrlPrefix        = StringTable.FinalMobileUrl1.Remove(StringTable.FinalMobileUrl1.Length - 1);
            var finalUrlPrefix              = StringTable.FinalUrl1.Remove(StringTable.FinalUrl1.Length - 1);
            var pricePrefix                 = StringTable.Price1.Remove(StringTable.Price1.Length - 1);
            var priceQualifierPrefix        = StringTable.PriceQualifier1.Remove(StringTable.PriceQualifier1.Length - 1);
            var priceUnitPrefix             = StringTable.PriceUnit1.Remove(StringTable.PriceUnit1.Length - 1);
            var termsAndConditionsPrefix    = StringTable.TermsAndConditions1.Remove(StringTable.TermsAndConditions1.Length - 1);
            var termsAndConditionsUrlPrefix = StringTable.TermsAndConditionsUrl1.Remove(StringTable.TermsAndConditionsUrl1.Length - 1);

            for (int i = 1; i <= MaxNumberOfProductTableRows; i++)
            {
                string currencyCode;
                string priceDescription;
                string header;
                string finalMobileUrl;
                string finalUrl;
                string price;
                string priceQualifier;
                string priceUnit;
                string termsAndConditions;
                string termsAndConditionsUrl;

                values.TryGetValue(currencyCodePrefix + i, out currencyCode);
                values.TryGetValue(priceDescriptionPrefix + i, out priceDescription);
                values.TryGetValue(headerPrefix + i, out header);
                values.TryGetValue(finalMobileUrlPrefix + i, out finalMobileUrl);
                values.TryGetValue(finalUrlPrefix + i, out finalUrl);
                values.TryGetValue(pricePrefix + i, out price);
                values.TryGetValue(priceQualifierPrefix + i, out priceQualifier);
                values.TryGetValue(priceUnitPrefix + i, out priceUnit);
                values.TryGetValue(termsAndConditionsPrefix + i, out termsAndConditions);
                values.TryGetValue(termsAndConditionsUrlPrefix + i, out termsAndConditionsUrl);

                if (!string.IsNullOrEmpty(currencyCode) ||
                    !string.IsNullOrEmpty(priceDescription) ||
                    !string.IsNullOrEmpty(header) ||
                    !string.IsNullOrEmpty(finalMobileUrl) ||
                    !string.IsNullOrEmpty(finalUrl) ||
                    !string.IsNullOrEmpty(price) ||
                    !string.IsNullOrEmpty(priceQualifier) ||
                    !string.IsNullOrEmpty(priceUnit) ||
                    !string.IsNullOrEmpty(termsAndConditions) ||
                    !string.IsNullOrEmpty(termsAndConditionsUrl))
                {
                    priceTableRows.Add(
                        new PriceTableRow
                    {
                        CurrencyCode    = currencyCode,
                        Description     = priceDescription,
                        Header          = header,
                        FinalMobileUrls = new string[]
                        {
                            finalMobileUrl
                        },
                        FinalUrls = new string[]
                        {
                            finalUrl
                        },
                        Price                 = price.Parse <double>(),
                        PriceQualifier        = priceQualifier.Parse <PriceQualifier>(),
                        PriceUnit             = priceUnit.Parse <PriceUnit>(),
                        TermsAndConditions    = termsAndConditions,
                        TermsAndConditionsUrl = termsAndConditionsUrl
                    }
                        );
                }
            }
        }
 /// <summary>
 /// Process specific entity mappings to CSV values. Must be implemented by each entity
 /// </summary>
 /// <param name="values">Row values</param>
 /// <param name="excludeReadonlyData"></param>
 internal abstract void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData);
 internal override void ProcessMappingsFromRowValues(RowValues values)
 {
     Identifier.ReadFromRowValues(values);            
 }
 public void ConvertToEntity(RowValues values, T entity)
 {
     CsvToField(values[CsvHeader(entity)], entity);
 }
 public void ConvertToCsv(T entity, RowValues values)
 {
     values[CsvHeader(entity)] = FieldToCsv(entity);
 }
        public static void AddRowValuesFromConditions(IList <WebpageCondition> conditions, RowValues rowValues)
        {
            var conditionHeaderPrefix = StringTable.DynamicAdTargetCondition1.Remove(StringTable.DynamicAdTargetCondition1.Length - 1);
            var valueHeaderPrefix     = StringTable.DynamicAdTargetValue1.Remove(StringTable.DynamicAdTargetValue1.Length - 1);

            for (var i = 1; i <= conditions.Count; i++)
            {
                rowValues[conditionHeaderPrefix + i] = conditions[i - 1].Operand.ToString();
                rowValues[valueHeaderPrefix + i]     = conditions[i - 1].Argument;
            }
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            Identifier.ReadFromRowValues(values);

            values.ConvertToEntity(this, Mappings);
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            AdExtensionIdToEntityIdAssociation = new AdExtensionIdToEntityIdAssociation();

            values.ConvertToEntity(this, Mappings);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(AdExtensionIdToEntityIdAssociation, "AdExtensionIdToEntityIdAssociation");

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            AdExtensionIdToEntityIdAssociation = new AdExtensionIdToEntityIdAssociation();            

            values.ConvertToEntity(this, Mappings);

            PerformanceData = PerformanceData.ReadFromRowValuesOrNull(values);
        }
Example #19
0
 public void ConvertToEntity(RowValues values, T entity)
 {
     CsvToEntity(values, entity);
 }
        public static void AddRowValuesFromConditions(IList <ProductCondition> conditions, RowValues rowValues)
        {
            var conditionHeaderPrefix = StringTable.ProductCondition1.Remove(StringTable.ProductCondition1.Length - 1);
            var valueHeaderPrefix     = StringTable.ProductValue1.Remove(StringTable.ProductValue1.Length - 1);

            for (var i = 1; i <= conditions.Count; i++)
            {
                rowValues[conditionHeaderPrefix + i] = conditions[i - 1].Operand;
                rowValues[valueHeaderPrefix + i]     = conditions[i - 1].Attribute;
            }
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            DeviceOsTargetBid = new DeviceOSTargetBid();

            base.ProcessMappingsFromRowValues(values);

            values.ConvertToEntity(this, Mappings);
        }
Example #22
0
 public void ConvertToEntity(RowValues values, T entity)
 {
     _csvToField(values[_csvHeader], entity);
 }
        internal override void ReadFromRowValues(RowValues values)
        {
            values.ConvertToEntity(this, Mappings);

            PerformanceData.ReadFromRowValues(values);
        }
 internal override void ProcessMappingsToRowValues(RowValues values)
 {
     this.ConvertToValues(values, Mappings);
 }
Example #25
0
 public void ConvertToCsv(T entity, RowValues values)
 {
     EntityToCsv(entity, values);
 }
        internal override void ProcessMappingsToRowValues(RowValues values)
        {
            ValidatePropertyNotNull(Campaign, "Campaign");

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            base.ProcessMappingsFromRowValues(values);

            values.ConvertToEntity(this, Mappings);
        }
Example #28
0
        internal override void ProcessMappingsToRowValues(RowValues values)
        {
            this.ConvertToValues(values, Mappings);

            PerformanceData = PerformanceData.ReadFromRowValuesOrNull(values);
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            Experiment = new Experiment();

            values.ConvertToEntity(this, Mappings);
        }
        internal override void ReadFromRowValues(RowValues values)
        {
            values.ConvertToEntity(this, Mappings);

            PerformanceData.ReadFromRowValues(values);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(BiddableCampaignCriterion, typeof(BiddableCampaignCriterion).Name);

            this.ConvertToValues(values, Mappings);
        }
        internal override void WriteToRowValues(RowValues values, bool excludeReadonlyData)
        {
            this.ConvertToValues(values, Mappings);

            PerformanceData.WriteToRowValuesIfNotNull(PerformanceData, values);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(AdExtensionIdToEntityIdAssociation, "AdExtensionIdToEntityIdAssociation");

            this.ConvertToValues(values, Mappings);

            if (!excludeReadonlyData)
            {
                PerformanceData.WriteToRowValuesIfNotNull(PerformanceData, values);
            }
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            values.ConvertToEntity(this, Mappings);

            PerformanceData = PerformanceData.ReadFromRowValuesOrNull(values);
        }
        private static void CsvToBiddingScheme(RowValues values, BulkCampaign c)
        {
            string bidStrategyTypeRowValue;

            BiddingScheme biddingScheme;

            if (!values.TryGetValue(StringTable.BidStrategyType, out bidStrategyTypeRowValue) || (biddingScheme = bidStrategyTypeRowValue.ParseBiddingScheme()) == null)
            {
                return;
            }

            string maxCpcRowValue;
            string targetCpaRowValue;
            string targetRoasRowValue;
            string targetAdPositionRowValue;
            string targetImpressionShareRowValue;

            values.TryGetValue(StringTable.BidStrategyMaxCpc, out maxCpcRowValue);
            values.TryGetValue(StringTable.BidStrategyTargetCpa, out targetCpaRowValue);
            values.TryGetValue(StringTable.BidStrategyTargetRoas, out targetRoasRowValue);
            values.TryGetValue(StringTable.BidStrategyTargetAdPosition, out targetAdPositionRowValue);
            values.TryGetValue(StringTable.BidStrategyTargetImpressionShare, out targetImpressionShareRowValue);

            var maxCpcValue                = maxCpcRowValue.ParseBid();
            var targetCpaValue             = targetCpaRowValue.ParseOptional <double>();
            var targetRoasValue            = targetRoasRowValue.ParseOptional <double>();
            var targetAdPositionValue      = targetAdPositionRowValue;
            var targetImpressionShareValue = targetImpressionShareRowValue.ParseOptional <double>();

            switch (biddingScheme)
            {
            case MaxClicksBiddingScheme maxClicksBiddingScheme:
                c.Campaign.BiddingScheme = new MaxClicksBiddingScheme
                {
                    MaxCpc = maxCpcValue,
                    Type   = "MaxClicks",
                };
                break;

            case MaxConversionsBiddingScheme maxConversionsBiddingScheme:
                c.Campaign.BiddingScheme = new MaxConversionsBiddingScheme
                {
                    MaxCpc = maxCpcValue,
                    Type   = "MaxConversions",
                };
                break;

            case MaxConversionValueBiddingScheme maxConversionValueBiddingScheme:

                c.Campaign.BiddingScheme = new MaxConversionValueBiddingScheme
                {
                    TargetRoas = targetRoasValue,
                    Type       = "MaxConversionValue",
                };
                break;

            case TargetCpaBiddingScheme targetCpaBiddingScheme:

                c.Campaign.BiddingScheme = new TargetCpaBiddingScheme
                {
                    MaxCpc    = maxCpcValue,
                    TargetCpa = targetCpaValue,
                    Type      = "TargetCpa",
                };
                break;

            case TargetRoasBiddingScheme targetRoasBiddingScheme:
                c.Campaign.BiddingScheme = new TargetRoasBiddingScheme
                {
                    MaxCpc     = maxCpcValue,
                    TargetRoas = targetRoasValue,
                    Type       = "TargetRoas",
                };
                break;

            case TargetImpressionShareBiddingScheme targetImpressionShareBiddingScheme:
                c.Campaign.BiddingScheme = new TargetImpressionShareBiddingScheme
                {
                    MaxCpc                = maxCpcValue,
                    TargetAdPosition      = targetAdPositionValue,
                    TargetImpressionShare = targetImpressionShareValue,
                    Type = "TargetImpressionShare",
                };
                break;

            default:
                c.Campaign.BiddingScheme = biddingScheme;
                break;
            }
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(OfflineConversion, "OfflineConversion");

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            RadiusTargetBid = new RadiusTargetBid2();

            base.ProcessMappingsFromRowValues(values);

            values.ConvertToEntity(this, Mappings);
        }
Example #38
0
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(NegativeAdGroupCriterion, typeof(NegativeAdGroupCriterion).Name);

            this.ConvertToValues(values, Mappings);
        }
 internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
 {            
     Identifier.WriteToRowValues(values, excludeReadonlyData);            
 }
Example #40
0
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(SimilarRemarketingList, typeof(SimilarRemarketingList).Name);

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            ValidatePropertyNotNull(DeviceOsTargetBid, "DeviceOsTargetBid");

            base.ProcessMappingsToRowValues(values, excludeReadonlyData);

            this.ConvertToValues(values, Mappings);
        }
        internal override void ProcessMappingsToRowValues(RowValues values, bool excludeReadonlyData)
        {
            base.ProcessMappingsToRowValues(values, excludeReadonlyData);

            this.ConvertToValues(values, Mappings);
        }
 /// <summary>
 /// Process specific entity mappings from CSV values. Must be implemented by each entity
 /// </summary>
 /// <param name="values">Row values</param>
 internal abstract void ProcessMappingsFromRowValues(RowValues values);
 internal override void ReadFromRowValues(RowValues values)
 {
     values.ConvertToEntity(this, Mappings);
 }
        internal override void WriteToRowValues(RowValues values, bool excludeReadonlyData)
        {
            this.ConvertToValues(values, Mappings);

            PerformanceData.WriteToRowValuesIfNotNull(PerformanceData, values);
        }
Example #46
0
        public static void AddRowValuesFromPriceTableRows(IList <PriceTableRow> priceTableRows, RowValues rowValues)
        {
            var currencyCodePrefix          = StringTable.CurrencyCode1.Remove(StringTable.CurrencyCode1.Length - 1);
            var priceDescriptionPrefix      = StringTable.PriceDescription1.Remove(StringTable.PriceDescription1.Length - 1);
            var headerPrefix                = StringTable.Header1.Remove(StringTable.Header1.Length - 1);
            var finalMobileUrlPrefix        = StringTable.FinalMobileUrl1.Remove(StringTable.FinalMobileUrl1.Length - 1);
            var finalUrlPrefix              = StringTable.FinalUrl1.Remove(StringTable.FinalUrl1.Length - 1);
            var pricePrefix                 = StringTable.Price1.Remove(StringTable.Price1.Length - 1);
            var priceQualifierPrefix        = StringTable.PriceQualifier1.Remove(StringTable.PriceQualifier1.Length - 1);
            var priceUnitPrefix             = StringTable.PriceUnit1.Remove(StringTable.PriceUnit1.Length - 1);
            var termsAndConditionsPrefix    = StringTable.TermsAndConditions1.Remove(StringTable.TermsAndConditions1.Length - 1);
            var termsAndConditionsUrlPrefix = StringTable.TermsAndConditionsUrl1.Remove(StringTable.TermsAndConditionsUrl1.Length - 1);

            for (var i = 1; i <= priceTableRows.Count; i++)
            {
                rowValues[currencyCodePrefix + i]     = priceTableRows[i - 1].CurrencyCode;
                rowValues[priceDescriptionPrefix + i] = priceTableRows[i - 1].Description;
                rowValues[headerPrefix + i]           = priceTableRows[i - 1].Header;
                if (priceTableRows[i - 1].FinalMobileUrls != null && priceTableRows[i - 1].FinalMobileUrls.Count > 0)
                {
                    rowValues[finalMobileUrlPrefix + i] = priceTableRows[i - 1].FinalMobileUrls[0];
                }
                if (priceTableRows[i - 1].FinalUrls != null && priceTableRows[i - 1].FinalUrls.Count > 0)
                {
                    rowValues[finalUrlPrefix + i] = priceTableRows[i - 1].FinalUrls[0];
                }
                rowValues[pricePrefix + i]                 = priceTableRows[i - 1].Price.ToBulkString();
                rowValues[priceQualifierPrefix + i]        = priceTableRows[i - 1].PriceQualifier.ToBulkString();
                rowValues[priceUnitPrefix + i]             = priceTableRows[i - 1].PriceUnit.ToBulkString();
                rowValues[termsAndConditionsPrefix + i]    = priceTableRows[i - 1].TermsAndConditions;
                rowValues[termsAndConditionsUrlPrefix + i] = priceTableRows[i - 1].TermsAndConditionsUrl;
            }
        }
        internal override void ProcessMappingsFromRowValues(RowValues values)
        {
            base.ProcessMappingsFromRowValues(values);

            values.ConvertToEntity(this, Mappings);
        }
Example #48
0
 internal override void ReadFromRowValues(RowValues values)
 {
     values.ConvertToEntity(this, Mappings);
 }
 internal override void WriteToRowValues(RowValues values, bool excludeReadonlyData)
 {
     this.ConvertToValues(values, Mappings);
 }        
 internal override void ProcessMappingsFromRowValues(RowValues rowValues)
 {
     Values = rowValues.ToDictionary();
 }