public PagedResponse <TEntity> ExecuteCustomListQuery <TEntity, TRequest, TSortColumn>(TRequest request, Dictionary <TSortColumn, Expression <Func <TEntity, object> > > sortDictionary, Expression <Func <TEntity, bool> > func = null, IQueryInclude <TEntity> include = null) where TEntity : AuditableEntity where TRequest : SortablePageableRequest <TSortColumn>, IRequest where TSortColumn : struct { Logger.LogTrace($"Entering execute of custom list query: {typeof(TEntity).Name}. By user {Username}"); var response = new PagedResponse <TEntity>(); if (request.IsRequestInvalid(response, ContextInfo)) { return(response); } var query = new GetMultipleWithFuncQuery <TRequest, TEntity, TSortColumn>(func) { ContextRequest = WrapRequest(request), SortDictionary = sortDictionary, QueryInclude = include }; var result = Repository.ExecuteQuery(query); response.Merge(result); return(response); }
public static PagedResponse <K> OnOk <TEntity, K>(this PagedResponse <TEntity> response, Func <PagedResponse <K> > func) { if (response.NotOk) { var other = new PagedResponse <K>(); other.Merge(response); return(other); } return(func()); }
public static PagedResponse <K> Map <TEntity, K>(this PagedResponse <TEntity> response, Func <IEnumerable <TEntity>, IEnumerable <K> > func) { var dtoResponse = new PagedResponse <K>(); dtoResponse.Merge(response); if (dtoResponse.NotOk) { return(dtoResponse); } dtoResponse.Payload = func(response.Payload); return(dtoResponse); }
public static PagedResponse <BasicInfo <long> > ToPagedBasicInfoResponse <T>(this PagedResponse <T> response, string propertyName) where T : IEntity { var dtoResponse = new PagedResponse <BasicInfo <long> >(); dtoResponse.Merge(response); if (dtoResponse.NotOk || response.Payload == null) { return(dtoResponse); } dtoResponse.Meta.Merge(response.Meta); dtoResponse.Payload = response.Payload.Select(x => new BasicInfo <long> { Id = x.Id, Name = typeof(T).GetProperty(propertyName).GetValue(x).ToString() }).OrderBy(x => x.Id); return(dtoResponse); }
public PagedResponse <TResult> ExecuteCustomListQuery <TQuery, TRequest, TResult>(TRequest request) where TRequest : IRequest where TQuery : BaseListQuery <TRequest, TResult>, new() { Logger.LogTrace($"Entering execute of custom list query: {typeof(TQuery).Name}. By user {Username}"); var response = new PagedResponse <TResult>(); if (request.IsRequestInvalid(response, ContextInfo)) { return(response); } var query = new TQuery { ContextRequest = WrapRequest(request) }; var result = Repository.ExecuteQuery(query); response.Merge(result); return(response); }
public PagedResponse <TEntity> GetMultiple <TRequest, TEntity, TSortColumn>(TRequest request, GetMultipleQuery <TRequest, TEntity, TSortColumn> query) where TRequest : SortablePageableRequest <TSortColumn>, IRequest where TEntity : AuditableEntity where TSortColumn : struct { Logger.LogTrace($"GetMultiple of {typeof(TEntity).Name}. By user {Username} "); var response = new PagedResponse <TEntity>(); if (request.IsRequestInvalid(response, ContextInfo)) { return(response); } query.ContextRequest = WrapRequest(request); var result = Repository.ExecuteQuery(query); response.Merge(result); return(response); }