Пример #1
0
        public async Task <dynamic> GetTieuChiThamDinhCustom(TieuChiThamDinhInputDto input)
        {
            try
            {
                var query = (from noiDung in _tieuChiThamDinhRepos.GetAll()
                             select new
                {
                    noiDung.Id,
                    noiDung.PId,
                    noiDung.Level,
                    noiDung.ThuTucId,
                    noiDung.LoaiBienBanThamDinhId,
                    noiDung.TieuBanEnum,
                    noiDung.RoleLevel,
                    noiDung.MaNoiDung,
                    noiDung.STT,
                    noiDung.TieuDeThamDinh,
                    noiDung.IsValidate,
                    noiDung.IsTieuDe
                })
                            .WhereIf(input.ThuTucId != null, x => x.ThuTucId == input.ThuTucId)
                            .WhereIf(input.RoleLevel != null, x => x.RoleLevel == input.RoleLevel)
                            .WhereIf(input.TieuBanEnum != null, x => x.TieuBanEnum == input.TieuBanEnum)
                            .WhereIf(input.LoaiBienBanThamDinhId != null, x => x.LoaiBienBanThamDinhId == input.LoaiBienBanThamDinhId);

                var dataGrids = await query
                                .OrderBy(p => p.STT)
                                .ToListAsync();

                return(dataGrids);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public async Task <PagedResultDto <dynamic> > GetAllServerPaging(TieuChiThamDinhInputDto input)
        {
            try
            {
                var query = (from noiDung in _tieuChiThamDinhRepos.GetAll()
                             join t_loaiBienBan in _loaiBienBanRepos.GetAll() on noiDung.LoaiBienBanThamDinhId equals t_loaiBienBan.Id into tb_loaiBienBan //Left Join
                             from loaiBienBan in tb_loaiBienBan.DefaultIfEmpty()
                             select new
                {
                    noiDung.Id,
                    noiDung.PId,
                    noiDung.Level,
                    noiDung.ThuTucId,
                    noiDung.LoaiBienBanThamDinhId,
                    noiDung.TieuBanEnum,
                    noiDung.RoleLevel,
                    noiDung.MaNoiDung,
                    noiDung.STT,
                    noiDung.TieuDeThamDinh,
                    noiDung.IsValidate,
                    noiDung.IsTieuDe,
                    StrLoaiBienBanThamDinh = loaiBienBan.Name,
                })
                            .WhereIf(input.ThuTucId != null, x => x.ThuTucId == input.ThuTucId)
                            .WhereIf(input.RoleLevel != null, x => x.RoleLevel == input.RoleLevel)
                            .WhereIf(input.TieuBanEnum != null, x => x.TieuBanEnum == input.TieuBanEnum)
                            .WhereIf(input.LoaiBienBanThamDinhId != null, x => x.LoaiBienBanThamDinhId == input.LoaiBienBanThamDinhId);

                var queryNoiDung = query.GroupBy(x => new
                {
                    x.ThuTucId,
                    x.RoleLevel,
                    x.LoaiBienBanThamDinhId,
                    x.TieuBanEnum
                }).Select(x => new
                {
                    x.Key.ThuTucId,
                    x.Key.RoleLevel,
                    x.Key.TieuBanEnum,
                    x.Key.LoaiBienBanThamDinhId,
                    x.FirstOrDefault().StrLoaiBienBanThamDinh,
                    ListNoiDung = x.Select(g => new
                    {
                        g.Id,
                        g.PId,
                        g.Level,
                        g.ThuTucId,
                        g.TieuBanEnum,
                        g.RoleLevel,
                        g.LoaiBienBanThamDinhId,
                        g.MaNoiDung,
                        g.STT,
                        g.TieuDeThamDinh,
                        g.IsValidate,
                        g.IsTieuDe,
                    })
                });

                var count = await queryNoiDung.CountAsync();

                var dataGrids = await queryNoiDung
                                .OrderBy(p => p.ThuTucId).ThenBy(x => x.TieuBanEnum)
                                .PageBy(input)
                                .ToListAsync();

                return(new PagedResultDto <dynamic>(count, dataGrids));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }