public List <ShowFullJob> ShowDetail(Guid OfferID)
        {
            var listOfferJob   = new OfferJobDao().ListOfferJob();
            var listEnterprise = new EnterpriseDao().ReturnList();
            var result         = (from job in listOfferJob
                                  join enpr in listEnterprise on job.EnterpriseID equals enpr.EnterpriseID
                                  where job.OfferID == OfferID
                                  select new
            {
                EnterpriseID = job.EnterpriseID,
                OfferName = job.OfferName,
                OfferDescription = job.OfferDescription,
                JobAddress = job.JobAddress,
                Amount = db.Salaries.Find(job.OfferSalary).Amount,
                Bonus = job.Bonus,
                AmountNum = job.Amount,
                Sex = job.Sex,
                NameArea = db.Areas.Find(job.Area).NameArea,
                OfferLimitDate = job.OfferLimitDate,
                Applications = job.Applications,
                Time = db.Experiences.Find(job.ExperienceRequest).Time,
                NameLevel = db.LevelLearnings.Find(job.LearningLevelRequest).NameLevel,
                NamePosition = db.PositionEmployees.Find(job.OfferPosition).NamePosition,
                EnterpriseName = enpr.EnterpriseName,
                AmountSize = db.EnterpriseSizes.Find(enpr.EnterpriseSize).AmountSize,
                ImageLogo = enpr.ImageLogo,
                NameOfEnterprise = db.TypeOfEnterprises.Find(enpr.TypeOfEnterprise).NameOfEnterprise,
                listJobId = db.EnterpriseJobs.Where(x => x.EnterpriseID == enpr.EnterpriseID && x.JobIdParent == null).Select(x => x.JobId).ToList(),
            }).AsEnumerable().Select(x => new ShowFullJob()
            {
                EnterpriseID     = x.EnterpriseID,
                OfferName        = x.OfferName,
                OfferDescription = x.OfferDescription,
                JobAddress       = x.JobAddress,
                Amount           = x.Amount,
                Bonus            = x.Bonus,
                AmountNum        = x.AmountNum,
                Sex              = x.Sex,
                NameArea         = x.NameArea,
                OfferLimitDate   = x.OfferLimitDate,
                Applications     = x.Applications,
                Time             = x.Time,
                NameLevel        = x.NameLevel,
                NamePosition     = x.NamePosition,
                EnterpriseName   = x.EnterpriseName,
                AmountSize       = x.AmountSize,
                ImageLogo        = x.ImageLogo,
                NameOfEnterprise = x.NameOfEnterprise,
                listJobId        = x.listJobId,
            });
            var finalResult = result.ToList();

            return(finalResult);
        }
        public List <OfferJob> ReturnFilterList(string offerName = "0", int Area              = 0,
                                                int OfferMajor   = 0, int offerSalary         = 0, int positionJobId        = 0,
                                                string sex       = "0", int experienceRequest = 0, int learningLevelRequest = 0)
        {
            try
            {
                var listOfferJob      = new OfferJobDao().ListOfferJob();
                var listOfferJobMajor = new OfferJobSkillDao().ReturnList();
                var listEnterprise    = new EnterpriseDao().ReturnList();
                var result            = (from job in listOfferJob
                                         join jobMajor in listOfferJobMajor on job.OfferID equals jobMajor.OfferID
                                         join enterprise in listEnterprise on job.EnterpriseID equals enterprise.EnterpriseID
                                         where (Area == 0 || job.Area == Area) &&
                                         (OfferMajor == 0 || job.OfferMajor == OfferMajor) &&
                                         (offerSalary == 0 || job.OfferSalary == offerSalary) &&
                                         (positionJobId == 0 || job.OfferPosition == positionJobId) &&
                                         (sex == "0" || job.Sex == sex) &&
                                         (experienceRequest == 0 || job.ExperienceRequest == experienceRequest) &&
                                         (learningLevelRequest == 0 || job.LearningLevelRequest == learningLevelRequest) &&
                                         (offerName == "0" || job.OfferName.Contains(offerName) || enterprise.EnterpriseName.Contains(offerName))


                                         select new
                {
                    OfferID = job.OfferID,
                    OfferName = job.OfferName,
                    EnterpriseID = job.EnterpriseID,
                    EnterpriseName = db.Enterprises.Find(job.EnterpriseID).EnterpriseName,
                    JobAddress = job.JobAddress,
                    OfferSalary = job.OfferSalary,
                    Amount = db.Salaries.Find(job.OfferSalary).Amount,
                    OfferLimitDate = job.OfferLimitDate,
                    Bonus = job.Bonus,
                    OfferImage = job.OfferImage,
                }).AsEnumerable().Select(x => new OfferJob()
                {
                    OfferID        = x.OfferID,
                    OfferName      = x.OfferName,
                    EnterpriseID   = x.EnterpriseID,
                    JobAddress     = x.JobAddress,
                    OfferSalary    = x.OfferSalary,
                    OfferLimitDate = x.OfferLimitDate,
                    Bonus          = x.Bonus,
                    OfferImage     = x.OfferImage
                });

                List <OfferJob> finalResult = result.ToList();
                int             n           = finalResult.Count;
                if (n == 0 || n == 1)
                {
                    return(finalResult);
                }

                List <OfferJob> finalResult2 = new List <OfferJob>();

                for (int i = 0; i < n; i++)
                {
                    bool check = true;
                    for (int j = 0; j < finalResult2.Count; j++)
                    {
                        if (finalResult[i].OfferID == finalResult2[j].OfferID)
                        {
                            check = false;
                            break;
                        }
                    }
                    if (check == true)
                    {
                        finalResult2.Add(finalResult[i]);
                    }
                }
                return(finalResult2);
            }
            catch (Exception e)
            {
                return(null);
            }
        }