Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
        }