public DirectTrackingDetailsBuilder(string partnerId, string currency, string transactionId)
 {
     _directTrackingDetails = new DirectTrackingDetails
     {
         PartnerId     = partnerId,
         Currency      = currency,
         TransactionId = transactionId
     };
 }
Exemplo n.º 2
0
 public Uri GenerateServerUrl(string key, DirectTrackingDetails directTrackingDetails) => new Uri(new StringBuilder()
                                                                                                  .AppendTrackingParameters(directTrackingDetails)
                                                                                                  .AppendSignature(key)
                                                                                                  .AppendTestParameter(generateTestUris)
                                                                                                  .Insert(0, TrackingUrl)
                                                                                                  .ToString());
Exemplo n.º 3
0
 public Uri GenerateScriptUrl(DirectTrackingDetails directTrackingDetails) => new Uri(new StringBuilder()
                                                                                      .AppendTrackingParameters(directTrackingDetails)
                                                                                      .AppendTestParameter(generateTestUris)
                                                                                      .Insert(0, TrackingScriptUrl)
                                                                                      .ToString());
        public static StringBuilder AppendTrackingParameters(this StringBuilder builder, DirectTrackingDetails directTrackingDetails)
        {
            builder
            .Append("?PartnerId=")
            .Append(HttpUtility.UrlEncode(directTrackingDetails.PartnerId))
            .Append("&TransactionId=")
            .Append(HttpUtility.UrlEncode(directTrackingDetails.TransactionId))
            .Append("&Currency=")
            .Append(HttpUtility.UrlEncode(directTrackingDetails.Currency));

            if (!string.IsNullOrEmpty(directTrackingDetails.MemberId))
            {
                builder.Append("&MemberId=").AppendFormat("{0:0.00}", directTrackingDetails.MemberId);
            }

            if (!string.IsNullOrEmpty(directTrackingDetails.Code))
            {
                builder.Append("&Code=").Append(HttpUtility.UrlEncode(directTrackingDetails.Code));
            }

            if (directTrackingDetails.OrderTotal.HasValue)
            {
                builder.Append("&OrderTotal=").AppendFormat("{0:0.00}", directTrackingDetails.OrderTotal.Value);
            }

            if (directTrackingDetails.ItemsUNiDAYSDiscount.HasValue)
            {
                builder.Append("&ItemsUNiDAYSDiscount=").AppendFormat("{0:0.00}", directTrackingDetails.ItemsUNiDAYSDiscount.Value);
            }

            if (directTrackingDetails.ItemsTax.HasValue)
            {
                builder.Append("&ItemsTax=").AppendFormat("{0:0.00}", directTrackingDetails.ItemsTax.Value);
            }

            if (directTrackingDetails.ShippingGross.HasValue)
            {
                builder.Append("&ShippingGross=").AppendFormat("{0:0.00}", directTrackingDetails.ShippingGross.Value);
            }

            if (directTrackingDetails.ShippingDiscount.HasValue)
            {
                builder.Append("&ShippingDiscount=").AppendFormat("{0:0.00}", directTrackingDetails.ShippingDiscount.Value);
            }

            if (directTrackingDetails.ItemsGross.HasValue)
            {
                builder.Append("&ItemsGross=").AppendFormat("{0:0.00}", directTrackingDetails.ItemsGross.Value);
            }

            if (directTrackingDetails.ItemsOtherDiscount.HasValue)
            {
                builder.Append("&ItemsOtherDiscount=").AppendFormat("{0:0.00}", directTrackingDetails.ItemsOtherDiscount.Value);
            }

            if (directTrackingDetails.UNiDAYSDiscountPercentage.HasValue)
            {
                builder.Append("&UNiDAYSDiscountPercentage=").AppendFormat("{0:0.00}", directTrackingDetails.UNiDAYSDiscountPercentage.Value);
            }

            if (directTrackingDetails.NewCustomer.HasValue)
            {
                builder.Append("&NewCustomer=").AppendFormat("{0}", directTrackingDetails.NewCustomer);
            }

            return(builder);
        }