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[] { };
 }
Esempio n. 2
0
 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[] {} ;
        }
Esempio n. 4
0
        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[] { });
 }