public async Task <IList <ScriptTag> > GetAllAsync( string source = "", DateTime createdBefore = default(DateTime), DateTime createdAfter = default(DateTime), ScriptTagField fields = ScriptTagField.None, int limit = 50, int page = 1, int idGreaterThan = 0, DateTime updatedBefore = default(DateTime), DateTime updatedAfter = default(DateTime)) { this.client.Configuration.SingleShopContract(); return(await this.GetAllAsync(this.client.Configuration.ShopDomain, this.client.Configuration.AccessToken, source, createdBefore, createdAfter, fields, limit, page, idGreaterThan, updatedBefore, updatedAfter)); }
public async Task<IList<ScriptTag>> GetAllAsync( string source = "", DateTime createdBefore = default(DateTime), DateTime createdAfter = default(DateTime), ScriptTagField fields = ScriptTagField.None, int limit = 50, int page = 1, int idGreaterThan = 0, DateTime updatedBefore = default(DateTime), DateTime updatedAfter = default(DateTime)) { this.client.Configuration.SingleShopContract(); return await this.GetAllAsync(this.client.Configuration.ShopDomain, this.client.Configuration.AccessToken, source, createdBefore, createdAfter, fields, limit, page, idGreaterThan, updatedBefore, updatedAfter); }
internal static string BuildScriptTagFieldFilter(this ScriptTagField scriptTagField) { if (scriptTagField == ScriptTagField.None) { return(string.Empty); } var scriptTagFieldFilterStringBuilder = new StringBuilder(); foreach (var scriptTagFieldFilterItem in Enum.GetValues(typeof(ScriptTagField)).Cast <ScriptTagField>().Where(scriptTagFieldFilterItem => scriptTagFieldFilterItem != ScriptTagField.None).Where(scriptTagFieldFilterItem => (scriptTagField & scriptTagFieldFilterItem) == scriptTagFieldFilterItem)) { switch (scriptTagFieldFilterItem) { case ScriptTagField.Id: scriptTagFieldFilterStringBuilder.Append("id"); break; case ScriptTagField.Source: scriptTagFieldFilterStringBuilder.Append("src"); break; case ScriptTagField.Event: scriptTagFieldFilterStringBuilder.Append("event"); break; case ScriptTagField.CreatedAt: scriptTagFieldFilterStringBuilder.Append("created_at"); break; case ScriptTagField.UpdatedAt: scriptTagFieldFilterStringBuilder.Append("updated_at"); break; } scriptTagFieldFilterStringBuilder.Append(','); } if (scriptTagFieldFilterStringBuilder.Length > 0 && scriptTagFieldFilterStringBuilder[scriptTagFieldFilterStringBuilder.Length - 1] == ',') { return(scriptTagFieldFilterStringBuilder.ToString().Substring(0, scriptTagFieldFilterStringBuilder.Length - 1)); } return(scriptTagFieldFilterStringBuilder.ToString()); }
public async Task<IList<ScriptTag>> GetAllAsync( string shopUrl, string accessToken, string source = "", DateTime createdBefore = default(DateTime), DateTime createdAfter = default(DateTime), ScriptTagField fields = ScriptTagField.None, int limit = 50, int page = 1, int idGreaterThan = 0, DateTime updatedBefore = default(DateTime), DateTime updatedAfter = default(DateTime)) { shopUrl.PerCallShopUrlContract(); accessToken.PerCallAccessTokenContract(); //// Optional parameter validation if (!string.IsNullOrWhiteSpace(source) && !source.IsValidUrlAddress()) { throw new ArgumentException("Source parameter is not a well formed URL"); } if (250 < limit) { throw new ArgumentException("Limit value cannot be more than 250, default is 50 if not specified"); } if (0 == page) { throw new ArgumentException("Page value cannot be zero"); } //// Build query string var queryStringBuilder = new QueryStringBuilder(); if (!string.IsNullOrWhiteSpace(source)) { queryStringBuilder.Add("src", source); } if (default(DateTime) != createdBefore) { queryStringBuilder.Add("created_at_max", createdBefore.ToString("yyyy-MM-dd HH:mm")); } if (default(DateTime) != createdAfter) { queryStringBuilder.Add("created_at_min", createdAfter.ToString("yyyy-MM-dd HH:mm")); } if (ScriptTagField.None != fields) { queryStringBuilder.Add("fields", fields.BuildScriptTagFieldFilter()); } if (0 != limit) { queryStringBuilder.Add("limit", limit.ToString(CultureInfo.InvariantCulture)); } if (0 != page) { queryStringBuilder.Add("page", page.ToString(CultureInfo.InvariantCulture)); } if (0 != idGreaterThan) { queryStringBuilder.Add("since_id", idGreaterThan.ToString(CultureInfo.InvariantCulture)); } if (default(DateTime) != updatedBefore) { queryStringBuilder.Add("updated_at_min", updatedBefore.ToString("yyyy-MM-dd HH:mm")); } if (default(DateTime) != updatedAfter) { queryStringBuilder.Add("updated_at_max", updatedAfter.ToString("yyyy-MM-dd HH:mm")); } using (var httpClient = new HttpClient()) { httpClient.Configure(shopUrl, accessToken); var queryStringParameters = queryStringBuilder.ToString(); var response = await httpClient.GetAsync(string.Format(CultureInfo.InvariantCulture, "{0}{1}", ApiRequestResources.GetScriptTagsAll, string.IsNullOrWhiteSpace(queryStringParameters) ? string.Empty : queryStringParameters)); if (!response.IsSuccessStatusCode) { return null; } var rawResponseContent = await response.Content.ReadAsStringAsync(); var scriptTags = JsonConvert.DeserializeObject<ScriptTagsJson>(rawResponseContent); return scriptTags.ScriptTags; } }
public async Task<ScriptTag> GetSingleAsync(string shopUrl, string accessToken, string id, ScriptTagField fields = ScriptTagField.None) { shopUrl.PerCallShopUrlContract(); accessToken.PerCallAccessTokenContract(); var queryStringBuilder = new QueryStringBuilder(); if (ScriptTagField.None != fields) { queryStringBuilder.Add("fields", fields.BuildScriptTagFieldFilter()); } using (var httpClient = new HttpClient()) { httpClient.Configure(shopUrl, accessToken); var queryStringParameters = queryStringBuilder.ToString(); var response = await httpClient.GetAsync(string.Format(CultureInfo.InvariantCulture, "{0}{1}", string.Format(CultureInfo.InvariantCulture, ApiRequestResources.GetScriptTagSingle, id), string.IsNullOrWhiteSpace(queryStringParameters) ? string.Empty : queryStringParameters)); if (!response.IsSuccessStatusCode) { return null; } var rawResponseContent = await response.Content.ReadAsStringAsync(); var scriptTagJson = JsonConvert.DeserializeObject<ScriptTagJson>(rawResponseContent); return scriptTagJson.ScriptTag; } }
public async Task<ScriptTag> GetSingleAsync(string id, ScriptTagField fields = ScriptTagField.None) { this.client.Configuration.SingleShopContract(); return await this.GetSingleAsync(this.client.Configuration.ShopDomain, this.client.Configuration.AccessToken, id, fields); }
public async Task <IList <ScriptTag> > GetAllAsync( string shopUrl, string accessToken, string source = "", DateTime createdBefore = default(DateTime), DateTime createdAfter = default(DateTime), ScriptTagField fields = ScriptTagField.None, int limit = 50, int page = 1, int idGreaterThan = 0, DateTime updatedBefore = default(DateTime), DateTime updatedAfter = default(DateTime)) { shopUrl.PerCallShopUrlContract(); accessToken.PerCallAccessTokenContract(); //// Optional parameter validation if (!string.IsNullOrWhiteSpace(source) && !source.IsValidUrlAddress()) { throw new ArgumentException("Source parameter is not a well formed URL"); } if (250 < limit) { throw new ArgumentException("Limit value cannot be more than 250, default is 50 if not specified"); } if (0 == page) { throw new ArgumentException("Page value cannot be zero"); } //// Build query string var queryStringBuilder = new QueryStringBuilder(); if (!string.IsNullOrWhiteSpace(source)) { queryStringBuilder.Add("src", source); } if (default(DateTime) != createdBefore) { queryStringBuilder.Add("created_at_max", createdBefore.ToString("yyyy-MM-dd HH:mm")); } if (default(DateTime) != createdAfter) { queryStringBuilder.Add("created_at_min", createdAfter.ToString("yyyy-MM-dd HH:mm")); } if (ScriptTagField.None != fields) { queryStringBuilder.Add("fields", fields.BuildScriptTagFieldFilter()); } if (0 != limit) { queryStringBuilder.Add("limit", limit.ToString(CultureInfo.InvariantCulture)); } if (0 != page) { queryStringBuilder.Add("page", page.ToString(CultureInfo.InvariantCulture)); } if (0 != idGreaterThan) { queryStringBuilder.Add("since_id", idGreaterThan.ToString(CultureInfo.InvariantCulture)); } if (default(DateTime) != updatedBefore) { queryStringBuilder.Add("updated_at_min", updatedBefore.ToString("yyyy-MM-dd HH:mm")); } if (default(DateTime) != updatedAfter) { queryStringBuilder.Add("updated_at_max", updatedAfter.ToString("yyyy-MM-dd HH:mm")); } using (var httpClient = new HttpClient()) { httpClient.Configure(shopUrl, accessToken); var queryStringParameters = queryStringBuilder.ToString(); var response = await httpClient.GetAsync(string.Format(CultureInfo.InvariantCulture, "{0}{1}", ApiRequestResources.GetScriptTagsAll, string.IsNullOrWhiteSpace(queryStringParameters) ? string.Empty : queryStringParameters)); if (!response.IsSuccessStatusCode) { return(null); } var rawResponseContent = await response.Content.ReadAsStringAsync(); var scriptTags = JsonConvert.DeserializeObject <ScriptTagsJson>(rawResponseContent); return(scriptTags.ScriptTags); } }
public async Task <ScriptTag> GetSingleAsync(string shopUrl, string accessToken, string id, ScriptTagField fields = ScriptTagField.None) { shopUrl.PerCallShopUrlContract(); accessToken.PerCallAccessTokenContract(); var queryStringBuilder = new QueryStringBuilder(); if (ScriptTagField.None != fields) { queryStringBuilder.Add("fields", fields.BuildScriptTagFieldFilter()); } using (var httpClient = new HttpClient()) { httpClient.Configure(shopUrl, accessToken); var queryStringParameters = queryStringBuilder.ToString(); var response = await httpClient.GetAsync(string.Format(CultureInfo.InvariantCulture, "{0}{1}", string.Format(CultureInfo.InvariantCulture, ApiRequestResources.GetScriptTagSingle, id), string.IsNullOrWhiteSpace(queryStringParameters) ? string.Empty : queryStringParameters)); if (!response.IsSuccessStatusCode) { return(null); } var rawResponseContent = await response.Content.ReadAsStringAsync(); var scriptTagJson = JsonConvert.DeserializeObject <ScriptTagJson>(rawResponseContent); return(scriptTagJson.ScriptTag); } }
public async Task <ScriptTag> GetSingleAsync(string id, ScriptTagField fields = ScriptTagField.None) { this.client.Configuration.SingleShopContract(); return(await this.GetSingleAsync(this.client.Configuration.ShopDomain, this.client.Configuration.AccessToken, id, fields)); }