/// <summary>
        /// Sets any properties on this object that are null to the appropriate defaults, if possible.
        /// </summary>
        /// <param name="settings">The settings used to construct the <see cref="LaybuyClient" /> instance that is about to send this request.</param>
        public override void SetDefaults(LaybuyClientConfiguration settings)
        {
            if (settings == null)
            {
                return;
            }

            if (String.IsNullOrWhiteSpace(this.Origin))
            {
                this.Origin = settings.DefaultOrigin.GuardNullOrWhiteSpace("request", nameof(Origin));
            }

            if (OriginData == null)
            {
                if (!String.IsNullOrEmpty(settings.DefaultBranch))
                {
                    this.OriginData = new StandardOriginData()
                    {
                        Branch = settings.DefaultBranch
                    };
                }
                else
                {
                    this.OriginData.GuardNull(nameof(OriginData));
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Full constructor.
        /// </summary>
        /// <param name="settings">A <see cref="LaybuyClientConfiguration"/> instance containing configuration details.</param>
        public LaybuyClient(LaybuyClientConfiguration settings)
        {
            settings.GuardNull(nameof(settings));
            settings.Credentials.GuardNull(nameof(settings), nameof(settings.Credentials));
            settings.Credentials?.MerchantId?.GuardNullOrWhiteSpace(nameof(settings), "Credentials.MerchantId");
            settings.Credentials?.ApiKey?.GuardNullOrWhiteSpace(nameof(settings), "Credentials.ApiKey");

            _Settings = settings;

            Newtonsoft.Json.JsonConvert.DefaultSettings = () =>
            {
                var retVal = new Newtonsoft.Json.JsonSerializerSettings
                {
                    NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
                };
                return(retVal);
            };

            try
            {
                _Client = settings?.HttpClientFactory?.Invoke() ?? CreateDefaultHttpClient();
                _Client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", GetBasicAuthParameter());
            }
            catch
            {
                _Client?.Dispose();

                throw;
            }
        }
Пример #3
0
 /// <summary>
 /// Sets any properties on this object that are null to the appropriate defaults, if possible.
 /// </summary>
 /// <param name="settings">The settings used to construct the <see cref="LaybuyClient"/> instance that is about to send this request.</param>
 /// <remarks>
 /// <para>The base implementation of this method does nothing, it should be overriden by derived classes that have defaults which can have suitable defaults applied.
 /// This method is not abstract so as not to force derived classes to implement and document an empty versions when there are no defaults that can be applied.</para>
 /// </remarks>
 public virtual void SetDefaults(LaybuyClientConfiguration settings)
 {
 }