public CriminalServiceResponse SearchCriminals(CriminalSearchCriteria searchCriteria) { CriminalServiceResponse response = new CriminalServiceResponse(); if (searchCriteria == null) { return(GetCriminals()); } else { try { List <CriminalInfo> criminalInfoList = DataProcressingService.SearchCriminals(searchCriteria); if (criminalInfoList == null || criminalInfoList.Count <= 0) { response = getFailedResponse(); response.ServiceErrorMsg = Defs.ERROR_DATA_NOT_FOUND; } else { response = getSuccessResponse(); response.criminals = criminalInfoList; } } catch (Exception e) { response = getFailedResponse(); response.ServiceErrorMsg = Defs.ERROR_DATABASE_IS_DOWN; } } return(response); }
/// <summary> /// Search for criminals based on passed searchCriteria /// This method starts a new thread /// calling SearchCriminals which in turn search for passed criminals and send themm email /// </summary> /// <param name="email"></param> /// <param name="searchCriteria"></param> /// <returns></returns> public bool SearchCrininals(string email, CriminalSearchCriteria searchCriteria) { var parameters = new List <object> { searchCriteria, email }; Thread thr = new Thread(SearchCriminals); thr.Start(parameters); return(searchCriteria.IsValid); }
public static CriminalSearchCriteria MapCriminalSearchModelToCriminalSearchCriteria(CriminalsSearchModel searchModel) { var criminalSearchCrtieria = new CriminalSearchCriteria() { MaxAge = searchModel.MaxAge, MinAge = searchModel.MinAge, MaxWeight = searchModel.MaxWeight, MinWeight = searchModel.MinWeight, MaxHeight = searchModel.MaxHeight, MinHeight = searchModel.MinHeight, Name = searchModel.Name, Nationality = searchModel.Nationality, IsMale = searchModel.IsMale, IgnoreGender = searchModel.IsMale && searchModel.IsFemale, MaxResultCount = searchModel.MaxResultCount }; return(criminalSearchCrtieria); }
public ActionResult SearchCriminals(String c_name, String c_Gender, String c_Age, String c_Nationality, String c_heightRange, String c_weightRange) { CriminalSearchCriteria searchCriteria = new CriminalSearchCriteria(); searchCriteria.Name = c_name; searchCriteria.Gender = c_Gender; searchCriteria.Nationality = c_Nationality; if (c_Age != null && !c_Age.Equals("0")) { String[] ages = c_Age.Split('_'); searchCriteria.MinAge = Util.toInt(ages[0]); searchCriteria.MaxAge = Util.toInt(ages[1]); } if (c_heightRange != null && !c_heightRange.Equals("0")) { String[] heights = c_heightRange.Split('_'); searchCriteria.MinHeight = Util.toInt(heights[0]); searchCriteria.MaxHeight = Util.toInt(heights[1]); } if (c_weightRange != null && !c_weightRange.Equals("0")) { String[] weights = c_weightRange.Split('_'); searchCriteria.MinWeight = Util.toInt(weights[0]); searchCriteria.MaxWeight = Util.toInt(weights[1]); } CriminalServiceResponse resp = ServiceClient.SearchCriminals(searchCriteria); if (resp.operationStatus) { CriminalInfoViewModel CurrentViewModel = new CriminalInfoViewModel(); CurrentViewModel.Criminals = resp.criminals.ToList(); return(View("GetCriminals", CurrentViewModel)); } else { return(View("GetCriminals", null)); } }
/// <summary> /// Search for criminals /// </summary> /// <param name="searchCriteria"></param> /// <returns></returns> public static List <CriminalProxy> GetCriminals(CriminalSearchCriteria searchCriteria) { var criminalsResult = new List <CriminalProxy>(); var dbContext = new NationalCriminalModelDataContext(); //Search based on search criteria var criminals = dbContext.Criminals.ToList(); if (searchCriteria != null) { if (!string.IsNullOrEmpty(searchCriteria.Name)) { criminals = criminals.Where(criminal => criminal.Name.ToLower().Contains(searchCriteria.Name.ToLower())).ToList(); } if (!string.IsNullOrEmpty(searchCriteria.Nationality)) { criminals = criminals.Where(criminal => criminal.Nationality.ToLower().Contains(searchCriteria.Nationality.ToLower())).ToList(); } if (searchCriteria.MinWeight > 0) { criminals = criminals.Where(criminal => criminal.Weight > searchCriteria.MinWeight).ToList(); } if (searchCriteria.MinHeight > 0) { criminals = criminals.Where(criminal => criminal.Height > searchCriteria.MinHeight).ToList(); } if (searchCriteria.MinAge > 0) { criminals = criminals.Where(criminal => criminal.Age > searchCriteria.MinAge).ToList(); } if (searchCriteria.MaxWeight > 0) { criminals = criminals.Where(criminal => criminal.Weight < searchCriteria.MaxWeight).ToList(); } if (searchCriteria.MaxHeight > 0) { criminals = criminals.Where(criminal => criminal.Height < searchCriteria.MaxHeight).ToList(); } if (searchCriteria.MaxAge > 0) { criminals = criminals.Where(criminal => criminal.Age < searchCriteria.MaxAge).ToList(); } if (!searchCriteria.IgnoreGender) { criminals = criminals.Where(criminal => criminal.IsMale == searchCriteria.IsMale).ToList(); } } foreach (var criminal in criminals) { if (criminalsResult.Count > searchCriteria.MaxResultCount) { break; } criminalsResult.Add(new CriminalProxy(criminal)); } return(criminalsResult); }