Пример #1
0
        public async Task <ActionResult <InternshipCategory> > PostInternshipCategory(InternshipCategory internshipCategory)
        {
            _context.InternshipCategories.Add(internshipCategory);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (InternshipCategoryExists(internshipCategory.InternshipId, internshipCategory.CategoryId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetInternshipCategory", new { internshipId = internshipCategory.InternshipId, categoryId = internshipCategory.CategoryId }, internshipCategory));
        }
Пример #2
0
        public async Task <IEnumerable <Internship> > GetInternshipsBySearchCityName(string searchString, string city)
        {
            if (string.IsNullOrEmpty(searchString) && string.IsNullOrEmpty(city))
            {
                return(await _context.Internships
                       .Where(i => i.Status == "approved").ToListAsync());
            }
            else
            {
                List <Internship> result = new List <Internship>();
                if (!string.IsNullOrEmpty(searchString))
                {
                    searchString = searchString.ToLower();
                }
                if (!string.IsNullOrEmpty(city))
                {
                    city = city.ToLower();
                }

                List <Internship> internships = await _context.Internships
                                                .Include(i => i.InternshipCategories)
                                                .ThenInclude(ic => ic.Category)
                                                .Include(i => i.InternshipAptitudes)
                                                .ThenInclude(ia => ia.Aptitude)
                                                .Include(i => i.City)
                                                .Include(i => i.Company)
                                                .ToListAsync();

                foreach (Internship internship in internships)
                {
                    if (internship.Status == "approved")
                    {
                        bool foundSearchString = false;
                        bool foundCity         = false;
                        if (!string.IsNullOrEmpty(searchString))
                        {
                            if (!string.IsNullOrEmpty(internship.Name) &&
                                (internship.Name.ToLower().Contains(searchString) || searchString.Contains(internship.Name.ToLower())))
                            {
                                foundSearchString = true;
                            }


                            if (!string.IsNullOrEmpty(internship.Company.Name) &&
                                (internship.Company.Name.ToLower().Contains(searchString) || searchString.Contains(internship.Company.Name.ToLower())))
                            {
                                foundSearchString = true;
                            }

                            if (!string.IsNullOrEmpty(internship.City.Name) &&
                                (internship.City.Name.ToLower().Contains(searchString) || searchString.Contains(internship.City.Name.ToLower())))
                            {
                                foundSearchString = true;
                            }


                            InternshipCategory foundInternshipCategory = internship.InternshipCategories
                                                                         .FirstOrDefault(ic => ic.Category.Name.ToLower().Contains(searchString) || searchString.Contains(ic.Category.Name.ToLower()));
                            if (foundInternshipCategory != null)
                            {
                                foundSearchString = true;
                            }

                            InternshipAptitude foundInternshipAptitude = internship.InternshipAptitudes
                                                                         .FirstOrDefault(ia => ia.Aptitude.Name.ToLower().Contains(searchString) || searchString.Contains(ia.Aptitude.Name.ToLower()));
                            if (foundInternshipAptitude != null)
                            {
                                foundSearchString = true;
                            }
                        }
                        else
                        {
                            foundSearchString = true;
                        }

                        if (!string.IsNullOrEmpty(city))
                        {
                            if (!string.IsNullOrEmpty(internship.City.Name) &&
                                (internship.City.Name.ToLower().Contains(city) || city.Contains(internship.City.Name.ToLower())))
                            {
                                foundCity = true;
                            }
                        }
                        else
                        {
                            foundCity = true;
                        }

                        if (foundSearchString && foundCity)
                        {
                            result.Add(internship);
                        }
                    }
                }

                return(result);
            }
        }