Ejemplo n.º 1
0
        public bool Equals(IReference <TKey, TEntity> other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return(EqualityComparer <TKey> .Default.Equals(Id, other.GetKey()));
        }
Ejemplo n.º 2
0
        public static Task <TEntity> GetObjectAsync <TKey, TEntity>(this IReference <TKey, TEntity> reference, IEntityStorage store = null) where TEntity : class
        {
            if (reference == null)
            {
                return(null);
            }

            var result = reference as TEntity;

            if (result != null)
            {
                return(Task.FromResult(result));
            }

            if (store == null)
            {
                throw new InvalidOperationException("Requires recourse to data storage");
            }

            return(store.Collection <TEntity>().GetByKeyAsync(reference.GetKey()));
        }