public async Task <T> LoadAsync <T>(Guid id)
        {
            var entityType = mapper.GetViewEntityType <T>();

            if (entityType == null)
            {
                return(mapper.View <T>());
            }

            var entity = (IEntity)await repository.LoadAsync(entityType, id);

            var view = mapper.View <T>(entity);

            return(view);
        }
Пример #2
0
        public override async Task <T[]> ExecuteAsync(ListQuery <T> message)
        {
            var entityType  = mapper.GetViewEntityType <T>();
            var entityArray = await repository.Query(entityType).ToArrayAsync();

            return(entityArray.Select(x => mapper.View <T>((IEntity)x)).ToArray());
        }
Пример #3
0
        public override async Task <T> ExecuteAsync(ByIdQuery <T> message)
        {
            if (typeof(T).IsAssignableToGeneric(typeof(IView <>)))
            {
                var     entityType = mapper.GetViewEntityType <T>();
                IEntity entity     = (IEntity)await repository.LoadAsync(entityType, message.Id);

                var view = mapper.View <T>(entity);
                return(view);
            }
            else if (typeof(T).IsAssignableToGeneric(typeof(IJoin <,>)))
            {
                //(var entityType1, var entityType2) = mapper.GetJoinEntityTypes<T>();
                //IEntity entity1 = (IEntity)await repository.LoadAsync(entityType1, message.Id);
                throw new NotSupportedException(this.GetType().Name);
            }
            else
            {
                return(mapper.View <T>());
            }
        }