Example #1
0
        /// <summary>
        /// Froms the site identifier.
        /// </summary>
        /// <param name="siteId">The site identifier.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException">Unknown site ID</exception>
        public static MeliSite ToMeliSite(this string siteId)
        {
            var site = new MeliSite();

            var found = false;

            foreach (MeliSite value in Enum.GetValues(typeof(MeliSite)))
            {
                var siteIdForsite = value.ToSiteId();

                if (siteIdForsite.IndexOf(siteId, StringComparison.InvariantCultureIgnoreCase) != -1)
                {
                    site  = value;
                    found = true;
                    break;
                }
            }

            if (!found)
            {
                throw new ArgumentOutOfRangeException(siteId, "Unknown site ID");
            }

            return(site);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MeliCredentials" /> class.
 /// </summary>
 /// <param name="site">The site.</param>
 /// <param name="clientId">The client identifier.</param>
 /// <param name="clientSecret">The client secret.</param>
 /// <param name="accessToken">The access token.</param>
 /// <param name="refreshToken">The refresh token.</param>
 public MeliCredentials(MeliSite site, long clientId, string clientSecret, string accessToken = null, string refreshToken = null)
 {
     Site = site;
     ClientId = clientId;
     ClientSecret = clientSecret;
     AccessToken = accessToken;
     RefreshToken = refreshToken;
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MeliCredentials" /> class.
 /// </summary>
 /// <param name="site">The site.</param>
 /// <param name="clientId">The client identifier.</param>
 /// <param name="clientSecret">The client secret.</param>
 /// <param name="accessToken">The access token.</param>
 /// <param name="refreshToken">The refresh token.</param>
 public MeliCredentials(MeliSite site, long clientId, string clientSecret, string accessToken = null, string refreshToken = null)
 {
     Site         = site;
     ClientId     = clientId;
     ClientSecret = clientSecret;
     AccessToken  = accessToken;
     RefreshToken = refreshToken;
 }
Example #4
0
        /// <summary>
        /// Generate an URL to get an access token for other users.
        /// </summary>
        /// <param name="clientId">The client identifier (meli app ID).</param>
        /// <param name="site">The site.</param>
        /// <param name="redirectUri">The call back URI redirect URL to (Mercado Libre with append ?code=YOUR_SECRET_CODE to this URL).</param>
        /// <returns>
        /// The authentication URL to redirect your user to.
        /// </returns>
        public string GetAuthUrl(long clientId, MeliSite site, string redirectUri)
        {
            var parameters = new HttpParams().Add("response_type", "code")
                             .Add("client_id", clientId)
                             .Add("redirect_uri", redirectUri);

            var domain = site.ToDomain();

            return($"https://auth.{domain}/authorization?{parameters}");
        }
        public void TestToCountryCodeWhenOutOfRange()
        {
            const MeliSite @enum = (MeliSite)100;

            Assert.Throws <InvalidOperationException>(() => @enum.ToCountryCode());
        }
Example #6
0
 /// <summary>
 /// Converts a mercado libre site to a base domain name value;
 /// </summary>
 /// <param name="enum">The enum.</param>
 /// <returns></returns>
 public static string ToDomain(this MeliSite @enum)
 {
     return(GetValue <MeliDomainAttribute>(@enum));
 }
Example #7
0
 /// <summary>
 /// Converts a mercado libre site to a two letter country code value;
 /// </summary>
 /// <param name="enum">The enum.</param>
 /// <returns></returns>
 public static string ToCountryCode(this MeliSite @enum)
 {
     return(GetValue <MeliCountryCodeAttribute>(@enum));
 }
Example #8
0
 /// <summary>
 /// Converts a mercado libre site to a SiteId value;
 /// </summary>
 /// <param name="enum">The enum.</param>
 /// <returns></returns>
 public static string ToSiteId(this MeliSite @enum)
 {
     return(GetValue <MeliSiteIdAttribute>(@enum));
 }