コード例 #1
0
        /// <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);
                }
            });
        }