public async Task <CashoutAggregate> TryGetAsync(Guid operationId)
        {
            var partitionKey = CashoutEntity.GetPartitionKey(operationId);
            var rowKey       = CashoutEntity.GetRowKey(operationId);

            var entity = await _storage.GetDataAsync(partitionKey, rowKey);

            return(entity?.ToDomain());
        }
        public async Task <CashoutAggregate> GetOrAddAsync(Guid operationId, Func <CashoutAggregate> newAggregateFactory)
        {
            var partitionKey = CashoutEntity.GetPartitionKey(operationId);
            var rowKey       = CashoutEntity.GetRowKey(operationId);

            var startedEntity = await _storage.GetOrInsertAsync(
                partitionKey,
                rowKey,
                () =>
            {
                var newAggregate = newAggregateFactory();

                return(CashoutEntity.FromDomain(newAggregate));
            });

            return(startedEntity.ToDomain());
        }
        public async Task SaveAsync(CashoutAggregate aggregate)
        {
            var entity = CashoutEntity.FromDomain(aggregate);

            await _storage.ReplaceAsync(entity);
        }