private static IReadOnlyDictionary <string, object> CreateBindingData(CloudQueueMessage value,
                                                                              IReadOnlyDictionary <string, object> bindingDataFromValueType)
        {
            Dictionary <string, object> bindingData = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase);

            string queueMessageString = value.TryGetAsString();

            // Don't provide the QueueTrigger binding data when the queue message is not a valid string.
            if (queueMessageString != null)
            {
                bindingData.Add("QueueTrigger", queueMessageString);
            }

            bindingData.Add("DequeueCount", value.DequeueCount);
            bindingData.Add("ExpirationTime", value.ExpirationTime.GetValueOrDefault(DateTimeOffset.MaxValue));
            bindingData.Add("Id", value.Id);
            bindingData.Add("InsertionTime", value.InsertionTime.GetValueOrDefault(DateTimeOffset.UtcNow));
            bindingData.Add("NextVisibleTime", value.NextVisibleTime.GetValueOrDefault(DateTimeOffset.MaxValue));
            bindingData.Add("PopReceipt", value.PopReceipt);

            if (bindingDataFromValueType != null)
            {
                foreach (KeyValuePair <string, object> item in bindingDataFromValueType)
                {
                    // In case of conflict, binding data from the value type overrides the built-in binding data above.
                    bindingData[item.Key] = item.Value;
                }
            }

            return(bindingData);
        }
Beispiel #2
0
        public static Guid?GetOwner(CloudQueueMessage msg)
        {
            string text = msg.TryGetAsString();

            if (text == null)
            {
                return(null);
            }

            IDictionary <string, JToken> json;

            try
            {
                json = JsonSerialization.ParseJObject(text);
            }
            catch (Exception)
            {
                return(null);
            }

            if (!json.ContainsKey(ParentGuidFieldName) || json[ParentGuidFieldName].Type != JTokenType.String)
            {
                return(null);
            }

            string val = (string)json[ParentGuidFieldName];

            Guid guid;

            if (Guid.TryParse(val, out guid))
            {
                return(guid);
            }
            return(null);
        }
 public string ToInvokeString()
 {
     // Potential enhancement: Base64-encoded AsBytes might replay correctly when use to create a new message.
     // return _message.TryGetAsString() ?? Convert.ToBase64String(_message.AsBytes);
     return(_message.TryGetAsString());
 }