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); }
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()); }
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>()); } }