public async Task <PageResult <HeaderDoc <UserRoleDoc> > > List(IWorkContext context, PageRequest pageRequest) { Verify.IsNotNull(nameof(context), context); Verify.IsNotNull(nameof(pageRequest), pageRequest); context = context.WithTag(_tag); var options = new driver.FindOptions <HeaderDoc <UserRoleDoc> > { Limit = pageRequest.Limit, Projection = "{'_id': 0}" }; IEnumerable <HeaderDoc <UserRoleDoc> > result; if (pageRequest.Index.IsEmpty()) { result = await _collection.Find(context, new BsonDocument(), options); } else { var query = new And() + (new Field(HeaderDoc.FieldName(nameof(UserRoleDoc.RoleId))) > pageRequest.Index); result = await _collection.Find(context, query.ToDocument(), options).ConfigureAwait(false); } return(new PageResult <HeaderDoc <UserRoleDoc> >(result.LastOrDefault()?.Payload?.RoleId, result)); }
public async Task <HeaderDoc <UserRoleDoc> > Get(IWorkContext context, string roleId) { Verify.IsNotNull(nameof(context), context); Verify.IsNotEmpty(nameof(roleId), roleId); context = context.WithTag(_tag); var options = new driver.FindOptions <HeaderDoc <UserRoleDoc> > { Limit = 1, Projection = "{'_id': 0}" }; var query = new And() + (new Field(HeaderDoc.FieldName(nameof(UserRoleDoc.RoleId))) == roleId); var result = await _collection.Find(context, query.ToDocument(), options).ConfigureAwait(false); return(result.FirstOrDefault()); }