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);
        }