Example #1
0
        /// <summary>
        /// generate pdf file for profile information of the passed criminal
        /// </summary>
        /// <param name="criminal"></param>
        public static bool GeneratorPdf(CriminalProxy criminal)
        {
            if (_pdfGenerator == null)
            {
                _pdfGenerator = new TextSharpGenerator();
            }

            return(_pdfGenerator.GeneratePdf(criminal));
        }
Example #2
0
        public static CriminalModel MapCriminalProxyToCriminalModel(CriminalProxy criminal)
        {
            var criminalModel = new CriminalModel()
            {
                Age         = criminal.Age,
                Name        = criminal.Name,
                Height      = criminal.Height,
                Weight      = criminal.Weight,
                IsMale      = criminal.Sex == GenderType.Male,
                Nationality = criminal.Nationality
            };

            return(criminalModel);
        }
Example #3
0
        public static CriminalProxy MapCriminalModelToCriminalProxy(CriminalModel criminal)
        {
            var criminalProxy = new CriminalProxy()
            {
                Age         = criminal.Age,
                Name        = criminal.Name,
                Height      = criminal.Height,
                Weight      = criminal.Weight,
                Sex         = criminal.IsMale ? GenderType.Male : GenderType.Female,
                Nationality = criminal.Nationality
            };

            return(criminalProxy);
        }
Example #4
0
        public bool GeneratePdf(CriminalProxy criminal)
        {
            try
            {
                if (criminal != null && criminal.IsValid)
                {
                    //create new file or override existing one
                    FileStream fs = new FileStream(criminal.FilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);

                    //create new pdf document
                    Document doc = new Document();


                    //create new pdf writer instance
                    PdfWriter writer = PdfWriter.GetInstance(doc, fs);


                    doc.Open();


                    //fill pdf with information of each criminal
                    //reflection is used to get value of each property and add it to pdf content
                    foreach (var propertyInfo in criminal.GetType().GetProperties())
                    {
                        if (propertyInfo.Name.ToLower() != "filepath" && propertyInfo.Name.ToLower() != "isvalid")
                        {
                            var content = propertyInfo.Name + " : " + propertyInfo.GetValue(criminal);

                            doc.Add(new Paragraph(content));
                        }
                    }

                    //close docuemnt
                    doc.Close();

                    return(true);
                }

                //If criminal or path arenot valid return false
                return(false);
            }
            catch
            {
                return(false);
            }
        }
Example #5
0
        private void SearchCriminals(object parameters)
        {
            var searchCriteria = (CriminalSearchCriteria)(parameters as List <object>)[0];

            var email = (parameters as List <object>)[1].ToString();
            //Get criminals that apply search criteria
            var criminals = CriminalProxy.GetCriminals(searchCriteria);

            if (criminals.Count > 0)
            {
                var criminalsToSend = new List <CriminalProxy>();

                //Iterate through them
                for (var i = 0; i < criminals.Count; ++i)
                {
                    //Add them to criminals list that will be send
                    criminalsToSend.Add(criminals[i]);

                    //for each 10 criminals we send in a separate email
                    if (i > 0 && i % 10 == 0)
                    {
                        StartEmailThread(criminalsToSend, email);

                        criminals.Clear();
                    }
                }

                if (criminalsToSend.Any())
                {
                    StartEmailThread(criminalsToSend, email);
                }
            }
            else
            {
                EmailSender.SendEmail(email, "No criminals found", "Criminal List");
            }
        }