Ejemplo n.º 1
0
        public Common.DTO.SpecialtiesAndCount GetSpecialtyBySubjects(ListSubjectsAndDistrict listSubjectsAndDistrict)
        {
            Common.DTO.SpecialtiesAndCount result = new SpecialtiesAndCount();
            if (listSubjectsAndDistrict.District == 0)
            {
                var q = (from ss in this.context.Specialty_Subjects
                         group ss.Subject.Id by ss.Specialty.Id into grouped
                         where listSubjectsAndDistrict.ListSubjects.All(x => grouped.Contains(x)) &&
                         grouped.Count() >= listSubjectsAndDistrict.ListSubjects.Count()
                         select grouped.Key).ToList();
                result.CountOfAllElements = q.Count;
                result.ListSpecialties    = this.GetSpecialty(listSubjectsAndDistrict, q);
            }
            else
            {
                var q = (from ss in this.context.Specialty_Subjects
                         where ss.Specialty.University.District.Id == listSubjectsAndDistrict.District
                         group ss.Subject.Id by ss.Specialty.Id into grouped
                         where listSubjectsAndDistrict.ListSubjects.All(x => grouped.Contains(x)) &&
                         grouped.Count() >= listSubjectsAndDistrict.ListSubjects.Count()
                         select grouped.Key).ToList();
                result.CountOfAllElements = q.Count;
                result.ListSpecialties    = this.GetSpecialty(listSubjectsAndDistrict, q);
            }

            return(result);
        }
Ejemplo n.º 2
0
 private IEnumerable <Common.DTO.Specialty> GetSpecialty(ListSubjectsAndDistrict subjects, List <int> q)
 {
     return((from s in this.context.Specialties
             join u in this.context.Universities on s.University.Id equals u.Id
             where q.Contains(s.Id)
             orderby RatingProvider.GetRating(s.NumApplication, s.NumEnrolled) descending
             select new Common.DTO.Specialty()
     {
         Name = s.Name,
         Address = u.Address,
         District = u.District.Name,
         Site = u.Site,
         University = u.Name,
         Subjects = (from ss in this.context.Specialty_Subjects
                     where ss.Specialty.Id == s.Id
                     select ss.Subject.ToCommon()).ToList()
     }).Skip((subjects.page - 1) * subjects.countOfElementsOnPage).Take(subjects.countOfElementsOnPage).ToList());
 }
Ejemplo n.º 3
0
 public SpecialtiesAndCount GetSpecialtyBySubjects([FromBody] ListSubjectsAndDistrict subjectsAndDistrict) => this.specialtyProvider.GetSpecialtyBySubjects(subjectsAndDistrict);