using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using Tango.BL; namespace Tango.FSE.BL { public class ReadOnlyEntityRepository : EntityRepositoryBase where TEntity : ObservableEntity where TCachedEntity : ObservableEntityDTO { private Func _convertToEntity; private Func _convertToCached; private DataResolverNode[] _nodes; public ReadOnlyEntityRepository(Func convertToEntity, Func convertToCached, params DataResolverNode[] nodes) { _convertToEntity = convertToEntity; _convertToCached = convertToCached; _nodes = nodes; } protected override TCachedEntity ConvertToCached(TEntity entity) { return _convertToCached.Invoke(entity); } protected override TEntity ConvertToEntity(TCachedEntity cachedEntity) { return _convertToEntity(cachedEntity); } public Task> FindAll(Expression> expression) { return FindAll(expression, _nodes); } public Task> FindAll() { return FindAll(x => true, _nodes); } public Task FindOne(Expression> expression) { return FindOne(expression, _nodes); } } }