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)); }
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); } }