private void SendAccidentReport(MessageBL objMessage, AccidentReportBL objAccidentReport, String strReceiptient, String strCustomerEmail, String strDate) { if (objMessage != null && objAccidentReport != null && !String.IsNullOrEmpty(strReceiptient)) { StringBuilder strMessage = new StringBuilder(); strMessage.Append("<table><tr><td colspan='2' align='center'><b>Accident Report</b></td></tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td>Date:</td><td>" + Convert.ToDateTime(strDate).ToShortDateString() + "</tr>"); strMessage.Append("<tr><td>Customer Email:</td><td>" + strCustomerEmail + "</tr>"); strMessage.Append("<tr><td>Street Name:</td><td>" + objAccidentReport.strStreet + "</tr>"); //since city field comes wtih state seperated by , strMessage.Append("<tr><td>City , State:</td><td>" + objAccidentReport.strCity + "</tr>"); strMessage.Append("<tr><td>Accident Description:</td><td>" + objAccidentReport.strDescription + "</tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td colspan='2' align='center'><b>Other Vehicle Driver</b></td></tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td>Name:</td><td>" + objAccidentReport.strDriverName + "</tr>"); strMessage.Append("<tr><td>Phone:</td><td>" + objAccidentReport.strDriverPhone + "</tr>"); strMessage.Append("<tr><td>License State and Plate:</td><td>" + objAccidentReport.strDriverLicenseStatePlate + "</tr>"); strMessage.Append("<tr><td>Driver License:</td><td>" + objAccidentReport.strDriverLicenseNo + "</tr>"); strMessage.Append("<tr><td>Vehicle Type:</td><td>" + objAccidentReport.strDriverVehicleType + "</tr>"); strMessage.Append("<tr><td>Their Insurance Company:</td><td>" + objAccidentReport.strInsuranceCompanyName + "</tr>"); strMessage.Append("<tr><td>Their Insurance Policy:</td><td>" + objAccidentReport.strInsurancePolicyNo + "</tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td colspan='2' align='center'><b>Police Information</b></td></tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td>Police Office and Badge#:</td><td>" + objAccidentReport.strPoliceOffice + "</tr>"); strMessage.Append("<tr><td>Police Report:</td><td>" + objAccidentReport.strPoliceReportNo + "</tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td colspan='2' align='center'><b>Other Accident Info</b></td></tr>"); strMessage.Append("<tr><td colspan='2' style='height:5px;'></td></tr>"); strMessage.Append("<tr><td>Witness:</td><td>" + objAccidentReport.strWitnesses + "</tr>"); strMessage.Append("<tr><td>Witness Comment:</td><td>" + objAccidentReport.strWitnessComments + "</tr>"); strMessage.Append("<tr><td>Misc Notes:</td><td>" + objAccidentReport.strMiscNotes + "</tr>"); List <Attachment> lstAttachment = null; if (objMessage.strAttachment != null) { lstAttachment = new List <Attachment>(); lstAttachment.Add(new Attachment(Constants.SHOPAPP_PATH_IMAGES + "\\" + objMessage.strAttachment)); } strMessage.Append("</table>"); EmailService.SendEmail.SendMail(strReceiptient, null, strMessage.ToString(), ConfigurationManager.AppSettings["SmtpUserName"], ConfigurationManager.AppSettings["SmtpUserPassword"], ConfigurationManager.AppSettings["SmtpHost"], "Accident Report", null, lstAttachment); } }
protected void Page_Load(object sender, EventArgs e) { Boolean bResult = false; AccidentReportBL objAccidentReport = new AccidentReportBL(); string strZipFilePath = String.Empty; try { String strPhoneId = String.Empty; String strPhoneId1 = String.Empty; if (!String.IsNullOrEmpty(Request.QueryString["ShopID"])) { //get the phone user id if (Request.QueryString["User_ID"] != null) { strPhoneId1 = Request.QueryString["User_ID"]; } else if (Request.Headers["User_ID"] != null) { strPhoneId1 = Request.Headers["User_ID"]; } if (!Int32.TryParse(Security.DecodeNumbers(Request.QueryString["ShopID"]), out iShopID)) { return; } } else { //get the phone user id if (Request.QueryString["User_ID"] != null) { strPhoneId = Request.QueryString["User_ID"]; } else if (Request.Headers["User_ID"] != null) { strPhoneId = Request.Headers["User_ID"]; } } //if (!String.IsNullOrEmpty(strPhoneId)) //{ //if fphone user id is found UserBL objUser = null; if (String.IsNullOrEmpty(strPhoneId1)) { objUser = UserBL.getDataByPhoneId(strPhoneId); } else { MyCustomerBL objMyCustomer = MyCustomerBL.getDataByShopIdNPhone(iShopID, strPhoneId1); if (objMyCustomer != null) { objUser = UserBL.getByActivityId(objMyCustomer.iUserId.Value); } } if (objUser != null) { //if user of previous phone user id is found fill his accident report information String strUserName = String.Empty; if (String.IsNullOrEmpty(objUser.strUserName)) { if (Request.QueryString["Phone_Owner_Name"] != null) { strUserName = Request.QueryString["Phone_Owner_Name"]; } else if (Request.Headers["Phone_Owner_Name"] != null) { strUserName = Request.Headers["Phone_Owner_Name"]; } } if (!String.IsNullOrEmpty(strUserName) && objUser.strFirstName != strUserName) { //if user's first name is changed objUser.strFirstName = strUserName; objUser.Save(); } objAccidentReport.iUserId = objUser.ID; if (Request.QueryString["Street_Name"] != null) { objAccidentReport.strStreet = Request.QueryString["Street_Name"].ToString(); } else if (Request.Headers["Street_Name"] != null) { objAccidentReport.strStreet = Request.Headers["Street_Name"].ToString(); } if (Request.QueryString["City_State"] != null) { objAccidentReport.strCity = Request.QueryString["City_State"].ToString(); } else if (Request.Headers["City_State"] != null) { objAccidentReport.strCity = Request.Headers["City_State"].ToString(); } if (Request.QueryString["Accident_Description"] != null) { objAccidentReport.strDescription = Request.QueryString["Accident_Description"].ToString(); } else if (Request.Headers["Accident_Description"] != null) { objAccidentReport.strDescription = Request.Headers["Accident_Description"].ToString(); } if (Request.QueryString["Name"] != null) { objAccidentReport.strDriverName = Request.QueryString["Name"].ToString(); } else if (Request.Headers["Name"] != null) { objAccidentReport.strDriverName = Request.Headers["Name"].ToString(); } if (Request.QueryString["Phone"] != null) { objAccidentReport.strDriverPhone = Request.QueryString["Phone"].ToString(); } else if (Request.Headers["Phone"] != null) { objAccidentReport.strDriverPhone = Request.Headers["Phone"].ToString(); } if (Request.QueryString["License_State_and_Plate"] != null) { objAccidentReport.strDriverLicenseStatePlate = Request.QueryString["License_State_and_Plate"].ToString(); } else if (Request.Headers["License_State_and_Plate"] != null) { objAccidentReport.strDriverLicenseStatePlate = Request.Headers["License_State_and_Plate"].ToString(); } if (Request.QueryString["Driver_License"] != null) { objAccidentReport.strDriverLicenseNo = Request.QueryString["Driver_License"].ToString(); } else if (Request.Headers["Driver_License"] != null) { objAccidentReport.strDriverLicenseNo = Request.Headers["Driver_License"].ToString(); } if (Request.QueryString["Vehicle_Type"] != null) { objAccidentReport.strDriverVehicleType = Request.QueryString["Vehicle_Type"].ToString(); } else if (Request.Headers["Vehicle_Type"] != null) { objAccidentReport.strDriverVehicleType = Request.Headers["Vehicle_Type"].ToString(); } if (Request.QueryString["Their_Insurance_Company"] != null) { objAccidentReport.strInsuranceCompanyName = Request.QueryString["Their_Insurance_Company"].ToString(); } else if (Request.Headers["Their_Insurance_Company"] != null) { objAccidentReport.strInsuranceCompanyName = Request.Headers["Their_Insurance_Company"].ToString(); } if (Request.QueryString["Their_Insurance_Policy"] != null) { objAccidentReport.strInsurancePolicyNo = Request.QueryString["Their_Insurance_Policy"].ToString(); } else if (Request.Headers["Their_Insurance_Policy"] != null) { objAccidentReport.strInsurancePolicyNo = Request.Headers["Their_Insurance_Policy"].ToString(); } if (Request.QueryString["Police_Office_and_Badge"] != null) { objAccidentReport.strPoliceOffice = Request.QueryString["Police_Office_and_Badge"].ToString(); } else if (Request.Headers["Police_Office_and_Badge"] != null) { objAccidentReport.strPoliceOffice = Request.Headers["Police_Office_and_Badge"].ToString(); } if (Request.QueryString["Police_Report"] != null) { objAccidentReport.strPoliceReportNo = Request.QueryString["Police_Report"].ToString(); } else if (Request.Headers["Police_Report"] != null) { objAccidentReport.strPoliceReportNo = Request.Headers["Police_Report"].ToString(); } if (Request.QueryString["Witness"] != null) { objAccidentReport.strWitnesses = Request.QueryString["Witness"].ToString(); } else if (Request.Headers["Witness"] != null) { objAccidentReport.strWitnesses = Request.Headers["Witness"].ToString(); } if (Request.QueryString["Witness_Comment"] != null) { objAccidentReport.strWitnessComments = Request.QueryString["Witness_Comment"].ToString(); } else if (Request.Headers["Witness_Comment"] != null) { objAccidentReport.strWitnessComments = Request.Headers["Witness_Comment"].ToString(); } if (Request.QueryString["Misc_Notes"] != null) { objAccidentReport.strMiscNotes = Request.QueryString["Misc_Notes"].ToString(); } else if (Request.Headers["Misc_Notes"] != null) { objAccidentReport.strMiscNotes = Request.Headers["Misc_Notes"].ToString(); } byte[] photo; UserPreferredShopBL objUserPreferredShop = UserPreferredShopBL.getShopByUserId(objUser.ID); MessageBL objMessage = null; if (objUserPreferredShop != null || iShopID > 0) { //add one message against his preferred shop objMessage = new MessageBL(); objMessage.strMessage = "Accident Report"; objMessage.iPhoneUserID = objUser.ID; if (objUserPreferredShop != null) { objMessage.iShopID = objUserPreferredShop.iShopId; } else { objMessage.iShopID = iShopID; } objMessage.dtMessageTime = DateTime.Now; objMessage.iType = Constants.AccidentReport; if (objMessage.Save()) { if (Request.ContentType.Contains("image")) { if (Request.ContentLength > 1) { photo = Request.BinaryRead(Request.ContentLength); //int cnt = Request.TotalBytes; //photo = Request.BinaryRead(cnt); MemoryStream bipimag = new MemoryStream(photo); System.Drawing.Image imag = new Bitmap(bipimag); if (!String.IsNullOrEmpty(Server.MapPath(Constants.ACIIDENTREPORTIMAGE))) { String filePath = Server.MapPath(Constants.ACIIDENTREPORTIMAGE) + "\\" + objMessage.ID + ".jpeg"; imag.Save(Constants.SHOPAPP_PATH_IMAGES + "\\" + objMessage.ID + ".jpeg", System.Drawing.Imaging.ImageFormat.Jpeg); objMessage.strAttachment = objMessage.ID + ".jpeg"; } } } else if (Request.ContentType.Contains("multipart")) { if (Request.Files.Count > 0 && !String.IsNullOrEmpty(Constants.SHOPAPP_PATH_IMAGES)) { // Zip the file if more than one photo if (Request.Files.Count > 1) { strZipFilePath = Constants.SHOPAPP_PATH_IMAGES + "\\" + objMessage.ID + ".zip"; ZipOutputStream objZipFile = new ZipOutputStream(File.Create(strZipFilePath)); //0-9, 9 being the highest level of compression objZipFile.SetLevel(3); // To permit the zip to be unpacked by built-in extractor in WinXP and Server2003, WinZip 8, Java, and other older code, // you need to do one of the following: Specify UseZip64.Off, or set the Size. // If the file may be bigger than 4GB, or you do not need WinXP built-in compatibility, you do not need either, // but the zip will be in Zip64 format which not all utilities can understand. objZipFile.UseZip64 = UseZip64.Off; for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFile file = Request.Files[i]; if (!Directory.Exists(Constants.SHOPAPP_PATH_IMAGES + "\\TempZipFiles")) { Directory.CreateDirectory(Constants.SHOPAPP_PATH_IMAGES + "\\TempZipFiles"); } String strFilePath = Constants.SHOPAPP_PATH_IMAGES + "\\TempZipFiles\\" + file.FileName; if (File.Exists(strFilePath)) { File.Delete(strFilePath); } file.SaveAs(strFilePath); string strEntryName = Path.GetFileName(strFilePath); // Removes drive from name and fixes slash direction ZipEntry objZipEntry = new ZipEntry(strEntryName); objZipEntry.DateTime = DateTime.Now; objZipFile.PutNextEntry(objZipEntry); // Zip the file in buffered chunks // the "using" will close the stream even if an exception occurs byte[] buffer = new byte[4096]; using (FileStream streamReader = File.OpenRead(strFilePath)) { StreamUtils.Copy(streamReader, objZipFile, buffer); } objZipFile.CloseEntry(); File.Delete(strFilePath); } objZipFile.IsStreamOwner = true; // Makes the Close also Close the underlying stream objZipFile.Close(); objMessage.strAttachment = objMessage.ID + ".zip"; } else { // String filePath = Server.MapPath(Constants.ACIIDENTREPORTIMAGE) + "\\" + objMessage.ID + Path.GetExtension(Request.Files[0].FileName); Request.Files[0].SaveAs(Constants.SHOPAPP_PATH_IMAGES + "\\" + objMessage.ID + Path.GetExtension(Request.Files[0].FileName)); objMessage.strAttachment = objMessage.ID + Path.GetExtension(Request.Files[0].FileName); } } } objMessage.Save(); objAccidentReport.iMessageId = objMessage.ID; //save the accident report if saved return true else false if (objAccidentReport.Save()) { bResult = true; if (Request.QueryString["Contact_Email_ID"] != null) { SendAccidentReport(objMessage, objAccidentReport, Request.QueryString["Contact_Email_ID"], Request.Headers["Customer_Email_ID"], Request.Headers["Accident_Report_Date"]); } else if (!String.IsNullOrEmpty(Request.Headers["Contact_Email_ID"])) { SendAccidentReport(objMessage, objAccidentReport, Request.Headers["Contact_Email_ID"], Request.Headers["Customer_Email_ID"], Request.Headers["Accident_Report_Date"]); } } } } } //} } catch (Exception ex) { bResult = false; } XmlDocument xmlDoc = new XmlDocument(); MemoryStream stream = new MemoryStream(); //XmlTextWriter xmlWriter = new XmlTextWriter(stream, System.Text.Encoding.ASCII); XmlTextWriter xmlWriter = new XmlTextWriter(stream, System.Text.Encoding.UTF8); xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("AccidentReport"); xmlWriter.WriteElementString("Status", bResult ? "Success" : "Fail"); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Flush(); byte[] byteArray = stream.ToArray(); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.AppendHeader("Content-Disposition", "filename=MyExportedFile.xml"); HttpContext.Current.Response.AppendHeader("Content-Length", byteArray.Length.ToString()); HttpContext.Current.Response.ContentType = "text/xml"; HttpContext.Current.Response.BinaryWrite(byteArray); }