public async Task <string> AddAsync(SmsMessage message) { var entity = SmsMessageEntity.Create(message); await _tableStorage.TryInsertAsync(entity); var indexEntity = AzureIndex.Create(IdIndex, entity.Id, entity); await _index.InsertAsync(indexEntity); return(entity.Id); }
public async Task DeleteAsync(string id, string messageId) { var entity = await GetAsync(id); if (entity == null) { return; } await _tableStorage.DeleteIfExistAsync(SmsMessageEntity.GeneratePartitionKey(entity.Created), SmsMessageEntity.GenerateRowKey(id)); await _index.DeleteIfExistAsync(IdIndex, id); if (!string.IsNullOrEmpty(messageId)) { await _index.DeleteIfExistAsync(MessageIdIndex, messageId); } }
public async Task SetMessageIdAsync(string messageId, string id) { var entity = await _tableStorage.GetDataAsync(_index, IdIndex, id); if (!string.IsNullOrEmpty(entity.MessageId)) { await _tableStorage.DeleteIfExistAsync(MessageIdIndex, entity.MessageId); } await _tableStorage.MergeAsync(SmsMessageEntity.GeneratePartitionKey(entity.Created), SmsMessageEntity.GenerateRowKey(id), messageEntity => { messageEntity.MessageId = messageId; return(messageEntity); }); var indexEntity = AzureIndex.Create(MessageIdIndex, messageId, entity); await _index.InsertAsync(indexEntity); }