public List <ItemObj <int> > GetCustomLoaiHoSo(XuLyPhanLoaiHoSoInputDto input)
        {
            var query = from data in _setting_LoaiHoSoRepos.GetAll()
                        where data.ThuTucId == input.ThuTucId && data.RoleLevel == input.RoleLevel
                        select new ItemObj <int>
            {
                Id   = data.Id,
                Name = data.Name
            };

            return(query.ToList());
        }
        public int?GetPhanLoaiHoSoId(XuLyPhanLoaiHoSoInputDto input)
        {
            try
            {
                var query = (from filter in _setting_LoaiHoSo_FilterRepos.GetAll()
                             join t_loaihoso in _setting_LoaiHoSoRepos.GetAll() on filter.PhanLoaiHoSoId equals t_loaihoso.Id into tb_loaihoso
                             from loaihoso in tb_loaihoso.DefaultIfEmpty()
                             where loaihoso.ThuTucId == input.ThuTucId && loaihoso.RoleLevel == input.RoleLevel
                             select filter);

                var dataGroup = query.GroupBy(x => x.PhanLoaiHoSoId)
                                .Select(x => new
                {
                    PhanLoaiHoSoId = x.Key,
                    ListJsonFilter = x.Select(a => new
                    {
                        a.PhanLoaiHoSoId,
                        a.JsonFilter
                    })
                }).ToList();

                List <XuLyPhanLoaiHoSo_CheckDto> listCheck = new List <XuLyPhanLoaiHoSo_CheckDto>();
                foreach (var data in dataGroup)
                {
                    var _deplicate = 0;
                    foreach (var item in data.ListJsonFilter)
                    {
                        if (input.ThuTucId == (int)CommonENum.THU_TUC_ID.THU_TUC_03)
                        {
                            if (input.RoleLevel == (int)CommonENum.ROLE_LEVEL.CHUYEN_VIEN)
                            {
                                var filter = JsonConvert.DeserializeObject <Filter_PhanLoaiHoSoDto>(item.JsonFilter);
                                if (DeepEquals_PDK(filter, input.Filter, ref _deplicate))
                                {
                                    listCheck.Add(new XuLyPhanLoaiHoSo_CheckDto()
                                    {
                                        PhanLoaiHoSoId = item.PhanLoaiHoSoId,
                                        Deplicate      = _deplicate
                                    });
                                }
                            }
                            else if (input.RoleLevel == (int)CommonENum.ROLE_LEVEL.CHUYEN_GIA)
                            {
                                var filter = JsonConvert.DeserializeObject <Filter_PhanLoaiHoSoDto>(item.JsonFilter);
                                if (DeepEquals_PDK(filter, input.Filter, ref _deplicate))
                                {
                                    listCheck.Add(new XuLyPhanLoaiHoSo_CheckDto()
                                    {
                                        PhanLoaiHoSoId = item.PhanLoaiHoSoId,
                                        Deplicate      = _deplicate
                                    });
                                }
                            }
                        }
                    }
                }

                var _check = listCheck.OrderByDescending(x => x.Deplicate).FirstOrDefault();
                if (_check == null)
                {
                    return(null);
                }

                return(_check.PhanLoaiHoSoId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }