/// <summary> /// Searches the criminals returns boolean value. /// </summary> /// <param name="model">Person ViewModel with appropriate data.</param> /// <returns>True or False</returns> public ActionResult Search(PersonViewModels model) { var objService = new NationalCriminalServiceClient(); bool result = false; if (ModelState.IsValid) { var person = new PersonClientModels { Name = model.Name, Sex = model.Sex, AgeMin = model.AgeMin, AgeMax = model.AgeMax, HeightMin = model.HeightMin, HeightMax = model.HeightMax, WeightMin = model.WeightMin, WeightMax = model.WeightMax, MaxResult = model.MaxResult, RecipientEmail = model.RecipientEmail }; var tt = objService.GenerateSearchResultAsync(person); result = true; } return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Generate search results based on input parameters. /// </summary> /// <param name="model">Model with appropriate data.</param> public void GenerateSearchResult(PersonClientModels model) { var db = new NationalCriminalsEntities(); var person = (from people in db.People where ( (model.Name == null || people.Name.Contains(model.Name)) && (model.Nationality == null || people.Nationality == model.Nationality) && (people.Sex == model.Sex) && (people.Age >= model.AgeMin && (model.AgeMax == 0 || people.Age <= model.AgeMax)) && (people.Height >= model.HeightMin && (model.HeightMax == 0 || people.Height <= model.HeightMax)) && (people.Weight >= model.WeightMin && (model.WeightMax == 0 || people.Weight <= model.WeightMax))) select new PersonModel { Name = people.Name, Age = people.Age, Sex = people.Sex, Weight = people.Weight, Height = people.Height, Nationality = people.Nationality }).Take(model.MaxResult).ToList(); //Send Email asynchronous. Task.Run(async() => { if (person.Count == 0) { await CreateNoRecordsFoundPDF(model.RecipientEmail); } else { await CreatePDF(person, model.RecipientEmail); } }); }