public Response <long> Save <T, TRequest>(TRequest request, IQueryInclude <T> includeQuery = null) where T : AuditableEntity, new() where TRequest : SaveRequest { Logger.LogTrace($"{(request.IsNew ? $"Entering Save new {typeof(T).Name} " : $"Entering Save {typeof(T).Name} with id: {request.Id}")}. By user {Username}"); var response = new Response <long>(); if (request.IsRequestInvalid(response, ContextInfo)) { return(response); } var mapper = ContainerFactory.GetMap <T, ContextRequest <TRequest> >() ?? new DefaultMapping <T, TRequest>(); var command = new SaveEntityCommand <T, TRequest> { WrappedRequest = WrapRequest(request), IncludeQuery = includeQuery, MapAction = (x, y) => mapper.Map(x, y) }; var result = Repository.ExecuteCommand(command); response.Merge(result); return(response); }
protected CoreManager(DomainRepository repository, IQueryInclude <TEntity> queryInclude, Dictionary <TSortColumn, Expression <Func <TEntity, object> > > sortDictionary, ILogger <CoreManager <TEntity, TRequest, TSortColumn> > logger) : base(repository, logger) { _queryInclude = queryInclude; _sortDictionary = sortDictionary; }
public static IQueryable <T> ApplyTracking <T>(this IQueryable <T> query, IQueryInclude queryObj) where T : class { if (queryObj.IsTracking) { return(query); } return(query.AsNoTracking <T>()); }
public virtual Response <string> GetJSON(IdPartialRequest request, IQueryInclude <TEntity> includeQuery = null) { var response = new Response <string>(); var queryInclude = new QueryInclude <TEntity>(request); var result = Get(request, queryInclude.IsValid ? queryInclude : includeQuery ?? _queryInclude); response.Merge(result); return(response); }
public Response <T> Get <T>(IdRequest request, IQueryInclude <T> includeQuery = null) where T : DeletableEntity { Logger.LogTrace($"Entering Get {typeof(T).Name} by id: {request.Id}. By user {Username}"); var query = new GetQuery <T, IdRequest> { IncludeQuery = includeQuery }; query.QueryFilters.Add(new IsActiveAndByIdFilter <T>(request.Id, true)); return(Get(request, query)); }
public virtual TEntity GetById(TKey id, IQueryInclude queryObj = null) { if (queryObj == null) { return(_dbSet.Find(id)); } IQueryable <TEntity> query = _dbSet; query = query.ApplyTrackingInclude(queryObj); return(query.SingleOrDefault(x => x.Id.Equals(id))); }
public virtual IEnumerable <TEntity> GetAll(IQueryInclude queryObj = null) { if (queryObj == null) { return(_dbSet); } IQueryable <TEntity> query = _dbSet; query = query.ApplyTrackingInclude(queryObj); return(query); }
public virtual PagedResponse <TEntity> GetMultiple(TRequest request, IQueryInclude <TEntity> queryInclude, List <IQueryFilter <TEntity> > queryFilters = null) { var query = new GetMultipleQuery <TRequest, TEntity, TSortColumn> { QueryInclude = queryInclude ?? _queryInclude, QueryFilters = queryFilters ?? QueryFilters(request), SortDictionary = _sortDictionary, ContextRequest = WrapRequest(request) }; return(GetMultiple(request, query)); }
public static IQueryable <T> ApplyInclude <T>(this IQueryable <T> query, IQueryInclude queryObj) where T : class { if (string.IsNullOrWhiteSpace(queryObj.IncludeProperties)) { return(query); } foreach (var includeProperty in queryObj.IncludeProperties.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { query = query.Include <T>(includeProperty); } return(query); }
public IEnumerable <ProductCategory> Get(Expression <Func <ProductCategory, bool> > predicate, IQueryInclude queryObj = null) { throw new NotImplementedException(); }
protected bool NotAny <T>(DomainRepository repository, Expression <Func <T, bool> > predicate, IQueryInclude <T> queryInclude = null) where T : AuditableEntity, new() { var query = new CheckPredicateQuery <T>(true) { ContextRequest = new ContextRequest <EmptyRequest>(UserContext), Predicate = predicate, QueryInclude = queryInclude }; var queryResult = repository.ExecuteQuery(query); return(queryResult.Status == HttpStatusCode.OK && queryResult.Value); }
public virtual IEnumerable <TEntity> Get(Expression <Func <TEntity, bool> > predicate, IQueryInclude queryObj = null) { IQueryable <TEntity> query = _dbSet; query = query.ApplyFilter(predicate); if (queryObj == null) { return(query); } query = query.ApplyTrackingInclude(queryObj); return(query); }
public Response <TEntity> ExecuteCustomQuery <TEntity, TRequest>(TRequest request, Expression <Func <TEntity, bool> > func, IQueryInclude <TEntity> include = null) where TRequest : IRequest where TEntity : AuditableEntity { Logger.LogTrace($"Entering execute of custom query: {typeof(TEntity).Name}. By user {Username}"); var response = new Response <TEntity>(); if (request.IsRequestInvalid(response, ContextInfo)) { return(response); } var query = new GetWithFuncQuery <TEntity, TRequest>(func) { ContextRequest = WrapRequest(request) , IncludeQuery = include }; var result = Repository.ExecuteQuery(query); response.Merge(result); return(response); }
public static IQueryInclude <TEntity, TProperty> ThenInclude <TEntity, TPreviousProperty, TProperty>(this IQueryInclude <TEntity, ICollection <TPreviousProperty> > query, Expression <Func <TPreviousProperty, TProperty> > propToExpand) where TEntity : class { return(new QueryInclude <TEntity, TProperty>(EntityFrameworkQueryableExtensions.ThenInclude(query.GetQuery(), propToExpand))); }
public virtual Response <bool> SaveMultiple <TSaveRequest>(List <TSaveRequest> request, IQueryInclude <TEntity> includeQuery = null, bool stopOnFirstInvalidRequest = false) where TSaveRequest : SaveRequest { if (request == null) { return(Response <bool> .BadRequest()); } var response = new Response <bool>(); foreach (var t in request) { t.IsRequestInvalid(response, ContextInfo); if (response.NotOk && stopOnFirstInvalidRequest) { return(response); } } if (response.Messages.Any()) { return(response); } request.ForEach(x => { response.Merge(Save(x, includeQuery)); }); response.Payload = !response.Messages.Any(); return(response); }
public static IQueryable <T> ApplyTrackingInclude <T>(this IQueryable <T> query, IQueryInclude queryObj) where T : class { query = ApplyTracking(query, queryObj); query = ApplyInclude(query, queryObj); return(query); }
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 ProductCategory GetById(int id, IQueryInclude queryObj = null) { throw new NotImplementedException(); }
public virtual Response <TEntity> Get(IdRequest request, IQueryInclude <TEntity> includeQuery) { return(base.Get(request, includeQuery ?? _queryInclude)); }
public IEnumerable <ProductCategory> GetAll(IQueryInclude queryObj = null) { throw new NotImplementedException(); }
public virtual Response <long> Save <TSaveRequest>(TSaveRequest request, IQueryInclude <TEntity> includeQuery = null) where TSaveRequest : SaveRequest { return(base.Save(request, includeQuery ?? _queryInclude)); }