public override IEnumerable<string> Inspect(WindowsAzureStorageTimelineMessage message) { if (message.ServiceName == "Table" && (message.ServiceOperation == "PUT" || message.ServiceOperation == "POST" || message.ServiceOperation == "MERGE" || message.ServiceOperation == "PATCH")) { var preferHeader = message.RequestHeaders["Prefer"]; var dataServiceVersionHeader = message.RequestHeaders["DataServiceVersion"]; if (preferHeader != null && dataServiceVersionHeader != null && dataServiceVersionHeader.Contains("3.0") && preferHeader.ToLowerInvariant() != "return-no-content") { // We're on Storage SDK 3.0 and it's an insert/update/merge return new string[] { "Disable the echocontent feature on the TableOperation instance or set the HTTP header Prefer:return-no-content. This will ensure the message payload isn't unnecessarily being returned in the operation response." }; } } return new string[] { }; }
public override IEnumerable <string> Inspect(WindowsAzureStorageTimelineMessage message) { if (message.ServiceName == "Table" && (message.ServiceOperation == "PUT" || message.ServiceOperation == "POST" || message.ServiceOperation == "MERGE" || message.ServiceOperation == "PATCH")) { var preferHeader = message.RequestHeaders["Prefer"]; var dataServiceVersionHeader = message.RequestHeaders["DataServiceVersion"]; if (preferHeader != null && dataServiceVersionHeader != null && dataServiceVersionHeader.Contains("3.0") && preferHeader.ToLowerInvariant() != "return-no-content") { // We're on Storage SDK 3.0 and it's an insert/update/merge return(new string[] { "Disable the echocontent feature on the TableOperation instance or set the HTTP header Prefer:return-no-content. This will ensure the message payload isn't unnecessarily being returned in the operation response." }); } } return(new string[] { }); }
public override IEnumerable<string> Inspect(WindowsAzureStorageTimelineMessage message) { // todo: refactor, this has been written on a tight schedule if (message.ServiceName == "Table" && message.Url.Contains("$filter=")) { string filterString = HttpUtility.ParseQueryString(new Uri(message.Url).Query)["$filter"]; try { ODataUriParser.ParseFilter(filterString, EdmModel, TableServiceEntity); } catch (ODataException ex) { // this means we're using other properties... return new[] { "This query may not perform as intended. Consider optimizing the entity structure so that a PartitionKey/RowKey query can be executed instead." }; } } return new string[] {} ; }
public override IEnumerable <string> Inspect(WindowsAzureStorageTimelineMessage message) { // todo: refactor, this has been written on a tight schedule if (message.ServiceName == "Table" && message.Url.Contains("$filter=")) { string filterString = HttpUtility.ParseQueryString(new Uri(message.Url).Query)["$filter"]; try { ODataUriParser.ParseFilter(filterString, EdmModel, TableServiceEntity); } catch (ODataException ex) { // this means we're using other properties... return(new[] { "This query may not perform as intended. Consider optimizing the entity structure so that a PartitionKey/RowKey query can be executed instead." }); } } return(new string[] {}); }
public virtual IEnumerable<string> Inspect(WindowsAzureStorageTimelineMessage message) { return new string[] { }; }
public virtual IEnumerable <string> Inspect(WindowsAzureStorageTimelineMessage message) { return(new string[] { }); }