public IActionResult GetCountryNames([FromBody] CountryLookupRequest countryLookupRequest) // public HttpResponseMessage GetCountryNames([FromBody] CountryLookupRequest countryLookupRequest) { var response = new CountryLookupResponse(); var resstatus = new ResponseStatus(); HttpResponseMessage resp = new HttpResponseMessage(); var res = new HttpResponseMessage(); try { if (!ModelState.IsValid) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Request is not valid"; return(BadRequest(response.ResponseStatus)); } else { if (countryLookupRequest != null) { if (countryLookupRequest.IncludeCities == null || countryLookupRequest.IncludeCities == "Y" || countryLookupRequest.IncludeCities == "N") { List <CountryLookupProperties> result = (List <CountryLookupProperties>)_MasterRepository.GetCountryNames(countryLookupRequest); response.ResponseStatus.Status = "Success"; if (result != null && result.Count() > 0) { response.CountryLookupProperties = result.OrderBy(a => a.CountryName).ToList(); } else { response.ResponseStatus.ErrorMessage = "No Records Found."; return(NotFound(response.ResponseStatus)); } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Include Cities parameter only accepts Y / N"; return(BadRequest(response.ResponseStatus)); } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Country Name can not be blank."; return(BadRequest(response.ResponseStatus)); } } } catch (Exception ex) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "An error occurs " + ex.ToString(); return(StatusCode(400)); } return(Ok(response)); //return Request. (HttpStatusCode.OK, response); }
public List <CountryLookupProperties> GetCountryNames(CountryLookupRequest countryLookupRequest) { //var country = from c in _MongoContext.mResort.AsQueryable() // where c.ResortType == "Country" // select c; //var cities = from c in _MongoContext.mResort.AsQueryable() // where c.ResortType == "City" // select c; var country = _MongoContext.mResort.AsQueryable().Where(a => a.ResortType == "Country"); var city = _MongoContext.mResort.AsQueryable().Where(a => a.ResortType == "City"); if (!string.IsNullOrEmpty(countryLookupRequest.CountryName)) { country = country .Where(c => c.ResortName.ToLower().Contains(countryLookupRequest.CountryName.ToLower())) .Select(c => c).AsQueryable(); } var lstCountry = country.ToList(); bool includeCities = false; //if (!string.IsNullOrEmpty(countryLookupRequest.CountryName)) // { if (countryLookupRequest.IncludeCities == "Y") { includeCities = true; } //} List <CountryLookupProperties> result = new List <CountryLookupProperties>(); if (includeCities) { var lstCity = city.ToList(); foreach (var con in lstCountry) { var data = new CountryLookupProperties(); data.Lookup = con.Lookup; data.CountryName = con.ResortName; data.ContinentName = con.ParentResortName; data.Voyager_Resort_Id = con.Voyager_Resort_Id; data.Nationality = con.Nation; data.Language = con.Language; List <CityLookupProperties> citiyResult = new List <CityLookupProperties>(); data.Cities = lstCity.Where(a => a.Voyager_Parent_Resort_Id == con.Voyager_Resort_Id).Select(ct => new CityLookupProperties { CityName = ct.ResortName, Lookup = ct.Lookup, Voyager_Resort_Id = ct.Voyager_Resort_Id } ).Distinct().ToList(); result.Add(data); } } else { result = lstCountry.Select(c => new CountryLookupProperties { Lookup = c.Lookup, CountryName = c.ResortName, ContinentName = c.ParentResortName, Voyager_Resort_Id = c.Voyager_Resort_Id, Nationality = c.Nation, Language = c.Language }).ToList(); } return(result); }