Пример #1
0
        public IActionResult DeleteConfirmed(Guid Id)
        {
            var company = _logic.Get(Id);

            if (company is null)
            {
                return(BadRequest());
            }

            var compdescs = new CompanyDescriptionLogic(new EFGenericRepository <CompanyDescriptionPoco>()).GetList(c => c.Company == company.Id);

            if (compdescs.Count > 0)
            {
                new CompanyDescriptionLogic(new EFGenericRepository <CompanyDescriptionPoco>()).Delete(compdescs.ToArray());
            }

            var compLocs = new CompanyLocationLogic(new EFGenericRepository <CompanyLocationPoco>()).GetList(c => c.Company == company.Id);

            if (compLocs.Count > 0)
            {
                new CompanyLocationLogic(new EFGenericRepository <CompanyLocationPoco>()).Delete(compLocs.ToArray());
            }

            var compJobs = new CompanyJobLogic(new EFGenericRepository <CompanyJobPoco>()).GetList(c => c.Company == company.Id);

            if (compJobs.Count > 0)
            {
                List <CompanyJobSkillPoco>         skill = new List <CompanyJobSkillPoco>();
                List <CompanyJobEducationPoco>     educs = new List <CompanyJobEducationPoco>();
                List <CompanyJobDescriptionPoco>   jds   = new List <CompanyJobDescriptionPoco>();
                List <ApplicantJobApplicationPoco> ajas  = new List <ApplicantJobApplicationPoco>();

                compJobs.ForEach(j =>
                {
                    var jobskills = new EFGenericRepository <CompanyJobSkillPoco>().GetList(c => c.Job == j.Id).ToList();
                    skill.AddRange(jobskills.ToList());

                    var jobedu = new EFGenericRepository <CompanyJobEducationPoco>().GetList(c => c.Job == j.Id).ToList();
                    educs.AddRange(jobedu.ToList());                                                                                                                               //= compJobs.ForEach(p=>p.Id == c.Job) }c.Job == compJobs.First().Id).ToArray());

                    var jobdesc = new EFGenericRepository <CompanyJobDescriptionPoco>().GetList(c => c.Job == j.Id).ToList();
                    jds.AddRange(jobdesc.ToList());

                    var appjobapp = new EFGenericRepository <ApplicantJobApplicationPoco>().GetList(c => c.Job == j.Id).ToList();
                    ajas.AddRange(appjobapp.ToList());
                });

                if (skill.Count > 0)
                {
                    new CompanyJobSkillLogic(new EFGenericRepository <CompanyJobSkillPoco>()).Delete(skill.ToArray());
                }
                if (educs.Count > 0)
                {
                    new CompanyJobEducationLogic(new EFGenericRepository <CompanyJobEducationPoco>()).Delete(educs.ToArray());
                }
                if (jds.Count > 0)
                {
                    new CompanyJobDescriptionLogic(new EFGenericRepository <CompanyJobDescriptionPoco>()).Delete(jds.ToArray());
                }
                if (ajas.Count > 0)
                {
                    new ApplicantJobApplicationLogic(new EFGenericRepository <ApplicantJobApplicationPoco>()).Delete(ajas.ToArray());
                }

                new CompanyJobLogic(new EFGenericRepository <CompanyJobPoco>()).Delete(compJobs.ToArray());
            }

            _logic.Delete(new CompanyProfilePoco[] { company });

            return(RedirectToAction(nameof(Index)));
        }