/// <summary> /// Saves the <paramref name="messageContainer"/>. /// </summary> /// <param name="messageContainer">The message to save.</param> /// <returns>The saved <paramref name="messageContainer"/>.</returns> protected override MessageContainer DoSaveMessage(MessageContainer messageContainer) { MongoCollection<BsonDocument> collection = this.database.GetCollection(MessagingDatabase.MessageQueue._COLLECTION_NAME); BsonDocument doc = BsonConverter.ConvertToBsonViaJson(messageContainer); collection.Save(doc); return BsonConverter.ConvertToObjectViaJson<MessageContainer>(doc); }
/// <summary> /// Adds a message to the queue. /// </summary> /// <param name="container">The message container.</param> /// <returns>The saved message container.</returns> protected override MessageContainer DoAddMessageToQueue(MessageContainer container) { string containerJson = JsonConvert.SerializeObject(container); string jsonResult = this.client.AddMessageToQueue(containerJson); var result = JsonConvert.DeserializeAnonymousType(jsonResult, new { Message = new MessageContainer() }); return result.Message; }
/// <summary> /// Creates and returns a new <see cref="MessageContainer"/> with /// <paramref name="message"/> as the message. /// </summary> /// <param name="gateway">The messaging gateway that acts as the this instance.</param> /// <param name="message">The message.</param> /// <returns>A new <see cref="MessageContainer"/> with <paramref name="message"/> as the message.</returns> public static MessageContainer AddMessageToQueue(this IMessagingServiceGateway gateway, MessageSerializable message) { MessageContainer container = new MessageContainer { Message = message }; return gateway.AddMessageToQueue(container); }
public MessageContainer AddMessageToQueue(MessageContainer container) { if (container.IsNew) { container.Id = Guid.NewGuid().ToString("N").Substring(0, 24); } return container; }
/// <summary> /// Saves the <paramref name="messageContainer"/>. /// </summary> /// <param name="messageContainer">The message to save.</param> /// <returns>The saved <paramref name="messageContainer"/>.</returns> protected abstract MessageContainer DoSaveMessage(MessageContainer messageContainer);
/// <summary> /// Saves the <paramref name="messageContainer"/>. /// </summary> /// <param name="messageContainer">The message to save.</param> /// <returns>The saved <paramref name="messageContainer"/>.</returns> public MessageContainer SaveMessage(MessageContainer messageContainer) { return this.DoSaveMessage(messageContainer); }
/// <summary> /// Saves the <paramref name="message"/> without changing the status and returns the saved object. /// </summary> /// <param name="message">The message to save.</param> /// <returns>The saved object.</returns> public MessageContainer SaveMessage(MessageContainer message) { return this.dataAccess.SaveMessage(message); }
/// <summary> /// Saves the <paramref name="message"/> and adds it into the queue to be sent and returns the saved object. /// </summary> /// <param name="message">The message to save.</param> /// <returns>The saved object.</returns> public MessageContainer EnqueueMessage(MessageContainer message) { message.Status = MessageStatus.Queued; return this.SaveMessage(message); }