コード例 #1
0
    public async Task <IList <AppRoleModel> > SearchAsync(AppRoleSearchModel model)
    {
        using (var session = factory.OpenSession()) {
            var conn = session.Connection;
            var sql  = new StringBuilder();
            sql.AppendLine("select ar.id, ir.name, ar.description, ar.is_default, ar.is_anonymous, count(ur.*) as user_count");
            sql.AppendLine("from public.aspnet_roles ir");
            sql.AppendLine("inner join public.app_roles ar on ar.id = ir.id");
            sql.AppendLine("left join public.aspnet_user_roles ur on ir.id = ur.role_id");
            sql.AppendLine("group by ar.id, ir.name, ar.description, ar.is_default");
            sql.AppendLine("order by ar.id;");
            var data = await conn.QueryAsync <AppRoleModel>(sql.ToString());

            return(data.ToList());
        }
    }
コード例 #2
0
    public async Task <ActionResult <PaginatedResponseModel <AppRoleModel> > > GetAll(
        [FromQuery] AppRoleSearchModel model
        )
    {
        try {
            var data = await identityRepo.SearchAsync(model);

            var result = new PaginatedResponseModel <AppRoleModel> {
                Skip  = model.Skip,
                Take  = model.Take,
                Total = data.Count,
                Data  = data
            };
            return(result);
        }
        catch (Exception ex) {
            logger.LogError(ex, $"Can not search roles with {model.ToJson()}");
            return(this.InternalServerError(ex));
        }
    }