Esempio n. 1
0
        MetaDataProvider(string integrator, ShoppingCartExtension shoppingCartExtension, IEnumerable <RequestHeader> additionalRequestHeaders)
        {
            ValidateAdditionalRequestHeaders(additionalRequestHeaders);

            ServerMetaInfo serverMetaInfo = new ServerMetaInfo()
            {
                PlatformIdentifier    = PlatformIdentifier,
                SdkIdentifier         = SdkIdentifier,
                SdkCreator            = "Ingenico",
                Integrator            = integrator,
                ShoppingCartExtension = shoppingCartExtension
            };

            string        serverMetaInfoString = DefaultMarshaller.Instance.Marshal(serverMetaInfo);
            RequestHeader serverMetaInfoHeader = new RequestHeader(SERVER_META_INFO_HEADER, serverMetaInfoString.ToBase64String());

            _metaDataHeaders = new List <RequestHeader> {
                serverMetaInfoHeader
            }
            .Concat(additionalRequestHeaders ?? Enumerable.Empty <RequestHeader>());;
        }
        public static void CheckWithAdditionalRequestHeader(string additionalHeaderName, bool isAllowed)
        {
            RequestHeader additionalRequestHeader = new RequestHeader(additionalHeaderName, Guid.NewGuid().ToString());

            MetaDataProviderBuilder builder = new MetaDataProviderBuilder("Ingenico");

            if (isAllowed)
            {
                MetaDataProvider            metaDataProvider = builder.WithAdditionalRequestHeader(additionalRequestHeader).Build();
                IEnumerable <RequestHeader> requestHeaders   = metaDataProvider.ServerMetaDataHeaders;
                Assert.AreEqual(2, requestHeaders.Count());

                RequestHeader requestHeader = requestHeaders.First();
                Assert.AreEqual("X-GCS-ServerMetaInfo", requestHeader.Name);

                requestHeader = requestHeaders.Skip(1).First();
                Assert.AreEqual(requestHeader, additionalRequestHeader);
            }
            else
            {
                Assert.That((() => builder.WithAdditionalRequestHeader(additionalRequestHeader)), Throws.ArgumentException.With.Message.Contains(additionalHeaderName));
            }
        }
Esempio n. 3
0
 public bool Equals(RequestHeader obj)
     => (obj?.Name?.Equals(Name) ?? false)
         && (obj?.Value?.Equals(Value) ?? false);
 /// <summary>
 /// Adds an additional request header.
 /// The following names are prohibited in these additional request headers, because these will be set automatically
 /// as needed:
 /// <list>
 /// <item><description>X-GCS-ServerMetaInfo</description></item>
 /// <item><description>X-GCS-ClientMetaInfo</description></item>
 /// <item><description>X-GCS-Idempotence-Key</description></item>
 /// <item><description>Date</description></item>
 /// <item><description>Content-Type</description></item>
 /// <item><description>Authorization</description></item>
 /// </list>
 /// </summary>
 /// <returns>This.</returns>
 public MetaDataProviderBuilder WithAdditionalRequestHeader(RequestHeader additionalRequestHeader)
 {
     MetaDataProvider.ValidateAdditionalRequestHeader(additionalRequestHeader);
     _additionalRequestHeaders.Add(additionalRequestHeader);
     return(this);
 }