public async Task <UserComposite> ReadUser(string email, IncludeOptions options = IncludeOptions.None) { var rs = await this.QueryUser(email, options); if (rs.Code == ResponseCode.Ok) { return(rs.Data.First()); } return(null); }
public async Task <ResponseModel <UserComposite> > QueryUser(string email, IncludeOptions options = IncludeOptions.None) { TableQuery <EmailEntity> query = new TableQuery <EmailEntity>().Where(EmailEntity.QueryKey(email)); var rs = await QueryEntities <EmailEntity>(query); if (rs.Code != ResponseCode.Ok) { return(ResponseModel <UserComposite> .Error(rs.Code, rs.Message)); } if (rs.Data[0].Email.UserId == null || rs.Data[0].Email.UserId == Guid.Empty) { return(ResponseModel <UserComposite> .Error(ResponseCode.NotFound)); } return(await QueryUser(rs.Data[0].Email.UserId, options)); }
public async Task <ResponseModel <EmailComposite> > QueryEmail(string email, IncludeOptions options = IncludeOptions.None) { EmailComposite c = new EmailComposite(); TableQuery <EmailEntity> query = new TableQuery <EmailEntity>().Where(EmailEntity.QueryKey(email)); var rs = await QueryEntities <EmailEntity>(query); if (rs.Code != ResponseCode.Ok) { return(ResponseModel <EmailComposite> .Error(rs.Code, rs.Message)); } c.Email = rs.Data[0].Email; if ((options & IncludeOptions.Entities) == IncludeOptions.Entities) { c.EmailEntity = rs.Data[0]; } return(ResponseModel <EmailComposite> .Success(c)); }
public async Task <ResponseModel <UserComposite> > QueryUser(Guid userId, IncludeOptions options = IncludeOptions.None) { TableQuery <UserEntity> query = new TableQuery <UserEntity>().Where(UserEntity.QueryKey(userId)); var rs = await QueryEntities <UserEntity>(query); if (rs.Code != ResponseCode.Ok) { return(ResponseModel <UserComposite> .Error(rs.Code, rs.Message)); } UserComposite c = new UserComposite(userId); c.User = rs.Data[0].User; if ((options & IncludeOptions.Entities) == IncludeOptions.Entities) { c.UserEntity = rs.Data[0]; } return(ResponseModel <UserComposite> .Success(c)); }
public static IQueryable <TDomain> GetIncludes <TDomain>(this DbSet <TDomain> dbSet, IncludeOptions options) where TDomain : class { IQueryable <TDomain> request = dbSet; if (options?.Includes.Count() > 0) { request = dbSet.GetIncludes(options.Includes); } else { request = dbSet.GetIncludes(); } return(request); }
public IQueryable <DomainType> GetAll(Expression <Func <DomainType, bool> > predicate = null, IncludeOptions options = null) { string key = (options != null) ? options.GetKey() : ""; return(repository.GetAll(predicate, options).Cacheable($"{KEY_SALT}{key}", debugInfo, cacheKeyProvider, cacheServiceProvider)); }
public DomainType Get(Expression <Func <DomainType, bool> > predicate, IncludeOptions options = null) { return(GetAll(predicate, options).FirstOrDefault()); }
public IQueryable <DomainType> GetAll(Expression <Func <DomainType, bool> > predicate = null, IncludeOptions options = null) { var request = objectSet.GetIncludes(options); if (predicate != null) { request = request.Where(predicate); } //TODO: AsNoTracking?? // ASNOTracking используется для read-only случаев, т.е. изменения не фиксируются при сохранении //return request.AsNoTracking().AsEnumerable(); return(request); }