Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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());
        }