/// <summary> /// This function returns locations /// </summary> /// <param name="prefix"></param> /// <param name="selectedIds"></param> /// <returns></returns> public List<AutoComplete> GetAutocomplete(string prefix, string selectedIds = null) { var context = new db_pcDataContext(); //exclude selected location from the auto complete list if (selectedIds == null) selectedIds = "0"; var ids = selectedIds.Split(',').Select(int.Parse); var list = new List<AutoComplete>(); var query = (from p in context.tbl_AllPostcodes where p.search_text.StartsWith(prefix.Trim()) && !(ids.Contains(p.id)) orderby p.search_text select p).Take(20); foreach (var p in query) { var objp = new AutoComplete { id = p.id }; if (p.is_town == 1) objp.name = p.search_text.Trim() + ", " + p.county; else if (p.is_county == 1) objp.name = p.search_text.Trim(); else objp.name = p.search_text.Trim() + ", " + p.town; list.Add(objp); } return list; }
/// <summary> /// This function returns the location text for a passed id /// </summary> /// <param name="locationId"></param> /// <returns></returns> public string GetLocationText(float locationId) { var context = new db_pcDataContext(); // ReSharper disable once CompareOfFloatsByEqualityOperator var loc = (context.tbl_AllPostcodes.Where(p => p.id == locationId)).FirstOrDefault(); if (loc != null) { if (loc.is_town == 1) return loc.search_text.Trim() + ", " + loc.county; if (loc.is_county == 1) return loc.search_text.Trim(); return loc.search_text.Trim() + ", " + loc.town; } return ""; }
/// <summary> /// This function returns the location for the given job Id /// </summary> /// <param name="jobId"></param> /// <param name="searchLocationType"></param> /// <returns></returns> public List<Location> GetLocationsForJob(int jobId, string searchLocationType) { var context = new dbDataContext(); var pContext = new db_pcDataContext(); //retrieve job location ids var qLocationIds = (from l in context.tbl_JobLocations where l.JobId == jobId orderby l.JobLocationId select l.LocationId) .ToList(); var locationList = new List<Location>(); if (searchLocationType.ToLower().Equals("uk")) { var qLocations = (from t in pContext.tbl_AllPostcodes where qLocationIds.Contains(t.id) select t); foreach (var loc in qLocations) { var objL = new Location { LocationId = loc.id }; //set the location text if (loc.is_town == 1) objL.LocationText = loc.search_text.Trim() + ", " + loc.county; else if (loc.is_county == 1) objL.LocationText = loc.search_text.Trim(); else objL.LocationText = loc.search_text.Trim() + ", " + loc.town; //add to list locationList.Add(objL); } } else { // do the join with other locations locationList = (from t in context.tbl_OtherLocations where qLocationIds.Contains(t.OtherLocationId) select new Location { LocationId = t.OtherLocationId, LocationText = t.Location }).ToList(); } return locationList; }
/// <summary> /// This function returns the location for the given Id /// </summary> /// <param name="locationId"></param> /// <returns></returns> public Location GetLocation(int locationId) { var pContext = new db_pcDataContext(); var loc = (from t in pContext.tbl_AllPostcodes where t.id == locationId select t).FirstOrDefault(); if (loc != null) { var objL = new Location { LocationId = loc.id }; //set the location text if (loc.is_town == 1) objL.LocationText = loc.search_text.Trim() + ", " + loc.county; else if (loc.is_county == 1) objL.LocationText = loc.search_text.Trim(); else objL.LocationText = loc.search_text.Trim() + ", " + loc.town; return objL; } return null; }
/// <summary> /// This function get locations for client /// </summary> /// <param name="clientId"></param> /// <returns></returns> public IEnumerable<Location> GetLocationsForClient(int clientId) { var context = new dbDataContext(); var pContext = new db_pcDataContext(); //retrieve client location ids var qLocationIds = (from l in context.tbl_ClientLocations where l.ClientId == clientId orderby l.ClientLocationId select l.LocationId).ToList(); var locationList = new List<Location>(); var qLocations = (from t in pContext.tbl_AllPostcodes where qLocationIds.Contains(t.id) select t); foreach (var loc in qLocations) { var objL = new Location { LocationId = loc.id }; //set the location text if (loc.is_town == 1) objL.LocationText = loc.search_text.Trim() + ", " + loc.county; else if (loc.is_county == 1) objL.LocationText = loc.search_text.Trim(); else objL.LocationText = loc.search_text.Trim() + ", " + loc.town; //add to list locationList.Add(objL); } return locationList; }
/// <summary> /// This function retuens the current location for contact /// </summary> /// <param name="currentLocationId"></param> /// <returns></returns> public Location GetContactCurrentLocation(int currentLocationId) { var pContext = new db_pcDataContext(); // get the location text var qLocation = (from t in pContext.tbl_AllPostcodes where t.id == currentLocationId select t).FirstOrDefault(); if (qLocation != null) { var objL = new Location { LocationId = qLocation.id }; //set the location text if (qLocation.is_town == 1) objL.LocationText = qLocation.search_text.Trim() + ", " + qLocation.county; else if (qLocation.is_county == 1) objL.LocationText = qLocation.search_text.Trim(); else objL.LocationText = qLocation.search_text.Trim() + ", " + qLocation.town; return objL; } return null; }