/// <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)); }
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); }
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); }
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); } }
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"); } }