/// <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; }
/// <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()); }
/// <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)); }
/// <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)); }
/// <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)); }