public async Task <APIResult <List <SiQuanViewModel> > > GetAllWithoutPaging()
        {
            List <SiQuanViewModel> listsqvm = new List <SiQuanViewModel>();
            var query = _context.SiQuans;

            foreach (var data in query)
            {
                var siquanvm = new SiQuanViewModel()
                {
                    IDSQ  = data.IDSQ,
                    HoTen = data.HoTen
                };
                listsqvm.Add(siquanvm);
            }
            return(new APISuccessedResult <List <SiQuanViewModel> >(listsqvm));
        }
        public async Task <APIResult <List <SiQuanViewModel> > > GetListSiQuanNotInQLQuanHamAutocomplete(string prefix)
        {
            var query = from sq in _context.SiQuans
                        where !_context.QLQuanHams.Any(x => x.IDSQ == sq.IDSQ) && sq.HoTen.Contains(prefix)
                        select sq;
            var list = new List <SiQuanViewModel>();

            foreach (var data in query)
            {
                var sq = new SiQuanViewModel()
                {
                    IDSQ  = data.IDSQ,
                    HoTen = data.HoTen
                };
                list.Add(sq);
            }
            return(new APISuccessedResult <List <SiQuanViewModel> >(list));
        }
        public async Task <APIResult <List <SiQuanViewModel> > > GetListSiQuanNotInQLDangVienAutoComplete(string prefix)
        {
            List <SiQuanViewModel> siQuanViewModels = new List <SiQuanViewModel>();
            var query = from sq in _context.SiQuans
                        where !_context.QLDangViens.Any(qldv => (qldv.IDSQ == sq.IDSQ)) &&
                        sq.HoTen.Contains(prefix)
                        select sq;

            foreach (var data in query)
            {
                var sqModel = new SiQuanViewModel()
                {
                    IDSQ  = data.IDSQ,
                    HoTen = data.HoTen
                };
                siQuanViewModels.Add(sqModel);
            }
            return(new APISuccessedResult <List <SiQuanViewModel> >(siQuanViewModels));
        }
        public async Task <APIResult <SiQuanViewModel> > GetById(int IDSQ)
        {
            var siquan = await _context.SiQuans.FindAsync(IDSQ);

            if (siquan == null)
            {
                throw new QLSQException($"Không tìm thấy sĩ quan nào có ID = {IDSQ} ");
            }
            var siquanmd = new SiQuanViewModel()
            {
            };

            siquanmd.IDSQ     = siquan.IDSQ;
            siquanmd.UserId   = siquan.UserId;
            siquanmd.HoTen    = siquan.HoTen;
            siquanmd.NgaySinh = siquan.NgaySinh;
            siquanmd.GioiTinh = siquan.GioiTinh;
            siquanmd.QueQuan  = siquan.QueQuan;
            siquanmd.SDT      = siquan.SDT;
            return(new APISuccessedResult <SiQuanViewModel>(siquanmd));
        }
        public async Task <APIResult <List <SiQuanViewModel> > > GetFullListSiQuanAutocomplete(string preconfix)
        {
            List <SiQuanViewModel> listsqvm = new List <SiQuanViewModel>();
            var query = from sq in _context.SiQuans
                        where sq.HoTen.Contains(preconfix)
                        select new SiQuanViewModel()
            {
                IDSQ  = sq.IDSQ,
                HoTen = sq.HoTen
            };

            foreach (var data in query)
            {
                var siquanvm = new SiQuanViewModel()
                {
                    IDSQ  = data.IDSQ,
                    HoTen = data.HoTen
                };
                listsqvm.Add(siquanvm);
            }
            return(new APISuccessedResult <List <SiQuanViewModel> >(listsqvm));
        }