Example #1
0
        public Int64 QueueMessage(IQueuedMessage message)
        {
            ExpandoObject msg   = PrepareMessage(message);
            IDataModel    md    = _dbContext.SaveModel(String.Empty, "a2messaging.[Message.Queue.Update]", msg);
            Int64         msgId = md.Eval <Int64>("Result.Id");

            if (message.Immediately)
            {
                FireAndForget(SendMessageAsync(msgId));
            }
            return(msgId);
        }
Example #2
0
        public ExpandoObject PrepareMessage(IQueuedMessage message)
        {
            String        json = JsonConvert.SerializeObject(message);
            ExpandoObject msg  = JsonConvert.DeserializeObject <ExpandoObject>(json, new ExpandoObjectConverter());

            ConvertToNameValueArray(msg, "Parameters");
            ConvertToNameValueArray(msg, "Environment");
            var dm = new ExpandoObject();

            dm.Set("Message", msg);
            return(dm);
        }
Example #3
0
        public async Task <Int64> QueueMessageAsync(IQueuedMessage message, Boolean immediately)
        {
            ExpandoObject msg = PrepareMessage(message);
            IDataModel    md  = await _dbContext.SaveModelAsync(String.Empty, "a2messaging.[Message.Queue.Update]", msg);

            Int64 msgId = md.Eval <Int64>("Result.Id");

            if (message.Immediately)
            {
                /*
                 * Task.Run(() => {
                 *      SendMessageAsync(msgId);
                 * });
                 */
            }
            return(msgId);
        }
Example #4
0
 public Task <Int64> QueueMessageAsync(IQueuedMessage message, Boolean immediately)
 {
     return(Task.FromResult(0L));
 }
Example #5
0
 public Int64 QueueMessage(IQueuedMessage message)
 {
     return(0);
 }
Example #6
0
 /// <summary>
 /// Creates a new instance of an SQL popped message
 /// </summary>
 /// <param name="message">The queued message that should be encapsulated into a popped message</param>
 /// <param name="visibilityTimeoutInSeconds">
 /// Until this time ellapses, no other process can access to this message in the queue. After that, it is free
 /// </param>
 /// <param name="popReceipt">The popreceipt of the popped message</param>
 public SqlPoppedMessage(IQueuedMessage message, int visibilityTimeoutInSeconds, string popReceipt)
     : this(message.MessageText, message.Id, message.ExpirationTime, message.InsertionTime,
     message.DequeueCount, visibilityTimeoutInSeconds, popReceipt)
 {
 }