public async Task Insert(IObservableWallet wallet)
 {
     try
     {
         await _storage.InsertAsync(ObservableWalletEntity.Create(wallet));
     }
     catch (StorageException e) when(e.RequestInformation.HttpStatusCode == EntityExistsHttpStatusCode)
     {
         throw new BusinessException($"Wallet {wallet.Address} already exist", ErrorCode.EntityAlreadyExist);
     }
 }
 public async Task Delete(string address)
 {
     try
     {
         await _storage.DeleteAsync(ObservableWalletEntity.GeneratePartitionKey(),
                                    ObservableWalletEntity.GenerateRowKey(address));
     }
     catch (StorageException e) when(e.RequestInformation.HttpStatusCode == EntityNotExistsHttpStatusCode)
     {
         throw new BusinessException($"Wallet {address} not exist", ErrorCode.EntityNotExist);
     }
 }
 public async Task <IObservableWallet> Get(string address)
 {
     return(await _storage.GetDataAsync(ObservableWalletEntity.GeneratePartitionKey(), ObservableWalletEntity.GenerateRowKey(address)));
 }
 public async Task <IEnumerable <IObservableWallet> > GetAll()
 {
     return(await _storage.GetDataAsync(ObservableWalletEntity.GeneratePartitionKey()));
 }