public Task DeleteMessageAsync(IDeviceIdentity deviceIdentity, int packetId, IQos2MessageDeliveryState message) { Contract.Requires(message != null); TableMessageDeliveryState tableMessage = ValidateMessageType(message); if (tableMessage.ETag == null) { throw new ArgumentException("Transient message cannot be deleted."); } return(this.table.ExecuteAsync(TableOperation.Delete(tableMessage))); }
public Task SetMessageAsync(int packetId, IQos2MessageDeliveryState message) { Contract.Requires(message != null); TableMessageDeliveryState tableMessage = ValidateMessageType(message); TableOperation tableOperation; if (tableMessage.ETag == null) { tableMessage.PartitionKey = CalculatePartitionKey(packetId); tableMessage.RowKey = packetId.ToString(CultureInfo.InvariantCulture); tableOperation = TableOperation.Insert(tableMessage); } else { tableOperation = TableOperation.Replace(tableMessage); } return(this.table.ExecuteAsync(tableOperation)); }
public Task SetMessageAsync(IDeviceIdentity deviceIdentity, int packetId, IQos2MessageDeliveryState message) { Contract.Requires(message != null); TableMessageDeliveryState tableMessage = ValidateMessageType(message); TableOperation tableOperation; if (tableMessage.ETag == null) { string rowKey = CalculateRowKey(deviceIdentity.Id, packetId); tableMessage.PartitionKey = CalculatePartitionKey(rowKey); tableMessage.RowKey = rowKey; tableOperation = TableOperation.Insert(tableMessage); } else { tableOperation = TableOperation.Replace(tableMessage); } return(this.table.ExecuteAsync(tableOperation)); }