Beispiel #1
0
        public virtual async Task <TEntity> Async(TKey key, Action <TEntity> updater)
        {
            var entity = await _repository.FindAsync(key);

            if (entity == null)
            {
                entity = _factory.CreateEmpty(key);
                updater(entity);

                await _repository.AddAsync(key, entity);

                return(entity);
            }

            updater(entity);

            await _repository.UpdateAsync(key, entity);

            return(entity);
        }