protected void Page_Load(object sender, EventArgs e) { NameValueCollection nvc = Request.Form; // string userName, password; if (!string.IsNullOrEmpty(Request["resp_number"])) { respid = Convert.ToInt32(Request["resp_number"]); resp_id.Value = respid.ToString(); } else if (resp_id.Value != null && resp_id.Value != "") { respid = Convert.ToInt32(resp_id.Value); } else { Response.Redirect("/Error.aspx?error=Wrong Request for booking"); }; //Not post or Wrong respid //Get the inquiry info. email_resp = BookResponseEmail.getResponseInfo(respid); if (email_resp.ID == 0) { Response.Redirect("/Error.aspx?error=Wrong Response number or not valid"); } inquiryinfo = BookDBProvider.getQuoteInfo(email_resp.QuoteID); owner_info = BookDBProvider.getUserInfo(inquiryinfo.PropertyOwnerID); prop_info = AjaxProvider.getPropertyDetailInfo(inquiryinfo.PropertyID); // _total_sum = email_resp.NightRate * inquiryinfo.Nights; _total_sum = email_resp.NightRate; _lodgingval = _total_sum * email_resp.LoadingTax / 100; _balance = _lodgingval + email_resp.CleaningFee + email_resp.SecurityDeposit; _total = _total_sum + _balance; }
protected void Page_Load(object sender, System.EventArgs e) { prop_category = BookDBProvider.getDataSet("uspGetPropertyCategory", new List <SqlParameter>()); all_amenities = BookDBProvider.getDataSet("uspGetAllAmenity", new List <SqlParameter>()); allfurnitures = BookDBProvider.getDataSet("uspGetAllFurniture", new List <SqlParameter>()); json_allfurnitures = CommonProvider.getJsonStringFromDs(allfurnitures); allattractions = BookDBProvider.getDataSet("uspGetAllAttraction", new List <SqlParameter>()); //For new property if (propertyid == -1) { } else if (propertyid > 0) { //For the existed property propinfo = AjaxProvider.getPropertyDetailInfo(propertyid); List <SqlParameter> param = new List <SqlParameter>(); param.Add(new SqlParameter("@propid", propertyid)); prop_amenities = BookDBProvider.getDataSet("uspGetPropertyAmenity", param); json_amenity = CommonProvider.getJsonStringFromDs(prop_amenities); json_propinfo = new JavaScriptSerializer().Serialize(propinfo); param.Clear(); param.Add(new SqlParameter("@propid", propertyid)); json_roomfurnitures = CommonProvider.getJsonStringFromDs(BookDBProvider.getDataSet("uspGetRoomFurnitures", param)); param.Clear(); param.Add(new SqlParameter("@propid", propertyid)); json_attractions = CommonProvider.getJsonStringFromDs(BookDBProvider.getDataSet("uspGetPropertyAttractionByID", param)); } }
protected void SendQuote_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } if (rates.Value == "") { return; } decimal _rates, _cleanfee, _secfee, _lodgingtax, _cancel90, _cancel60, _cancel30, _total_sum, _lodgingvalue, _balance; int _validnumber; if (!Decimal.TryParse(rates.Value, out _rates)) { _rates = 0; } if (!Decimal.TryParse(cleaningfee.Value, out _cleanfee)) { _cleanfee = 0; } if (!Decimal.TryParse(secdeposit.Value, out _secfee)) { _secfee = 0; } if (!Decimal.TryParse(loadingtax.Value, out _lodgingtax)) { _lodgingtax = 0; } if (!Decimal.TryParse(cancel90.Value, out _cancel90)) { _cancel90 = 0; } if (!Decimal.TryParse(cancel60.Value, out _cancel60)) { _cancel60 = 0; } if (!Decimal.TryParse(cancel30.Value, out _cancel30)) { _cancel30 = 0; } if (!Int32.TryParse(validnumber.Value, out _validnumber)) { _validnumber = 0; } //_total_sum = _rates * inquiryinfo.Nights; _total_sum = _rates; _lodgingvalue = _total_sum * _lodgingtax / 100; _balance = _lodgingvalue + _secfee + _cleanfee; int newrespid = 0; int _currency = Convert.ToInt32(currency.SelectedValue); if ((newrespid = BookDBProvider.addEmailResponse(inquiryinfo.PropertyOwnerID, inquiryinfo.UserID, quoteid, _rates, _cleanfee, _secfee, _lodgingtax, _cancel30, _cancel60, _cancel90, DateTime.Now, _validnumber, _currency, comment.InnerText)) > 0) { BookDBProvider.updateEmailQuoteState(quoteid); } UserInfo userinfo = BookDBProvider.getUserInfo(inquiryinfo.PropertyOwnerID); // BookResponseEmail /for owner string toOwner = String.Format("Hi, {0}!<br> You have replied the inquiry for the property {1} in {2},{3},{4}.<br> Thanks.", userinfo.firstname + " " + userinfo.lastname, inquiryinfo.PropertyID, countryinfo.city, countryinfo.state, countryinfo.country); BookDBProvider.SendEmail(userinfo.email, "You have replied for the inquiry", toOwner); PropertyDetailInfo propinfo = AjaxProvider.getPropertyDetailInfo(inquiryinfo.PropertyID); string url = String.Format("https://www.vacations-abroad.com/{0}/{1}/{2}/{3}/default.aspx", propinfo.Country, propinfo.StateProvince, propinfo.City, propinfo.ID).ToLower().Replace(" ", "_"); //To traveler // UserInfo traveler = BookDBProvider.getUserInfo(inquiryinfo.UserID); string toTraveler = @"<body> {22} <table border='0px' width='600px' > <tr> <td> <table style='width:600px;'> <tr> <td style='color:#000;font-size:16pt;width:300px;font-family: Verdana;'> <b>Vacations Abroad</b> </td> <td style='color:#000;font-size:10pt;width:300px;text-align: right;font-family: Verdana;'> {0} </td> </tr> </table> </td> </tr> <tr> <td bgcolor='#4472c4' style='border:1px solid #2f528f;text-align:center;padding: 10px 0px;color:#fff;font-size:12pt;font-family: Verdana;'> <a href='https://www.vacations-abroad.com/quoteresponse.aspx?respid={21}' style='cursor: pointer;color: #fff;text-decoration: none;font-size:12pt;font-family: Verdana;'> <b>Book Now!<b> </a> </td> </tr> <tr> <td style='text-align: center;padding: 10px 0px;'> <img src='{2}' style='width:350px;height: 220px;' width='350' height='220' /> </td> </tr> <tr> <td style='text-align: center;font-size:10pt;font-family: Verdana;'> Name of property:{3} Type of property:{4} </td> </tr> <tr> <td style='padding: 10px;'> <table style='border:1px dashed #000;width:600px;font-size:12pt;'> <tr> <td style='padding:10px;font-family: Verdana;'> <a href='{5}'>Property {6}</a> <br/> Date of Arrival: {7} <br/> {8} of nights <br/> # of Guests: {9} Adults, {10} children <br/><br/> Total Amount Due:{12} {19}<br/> Amount Due to Reserve:{13} {19} <br/> </td> </tr> <tr> <td style='background: none; border: dotted 1px #999999; border-width:1px 0 0 0; height:1px;font-size:1px;'></td> </tr> <tr> <td style='padding:3px;font-family: Verdana;'> Cleaning Fee:{15} {19}<br/> Security Deposit:{16} {19}<br/> Lodging Tax:{17}% {20}{19}<br/> Amount Due Upon Arrival:{18} <br/> Comment:{23}<br/> </td> </tr> </table> </td> </tr> <tr> <td style='padding: 15px; text-align: center;'> <a href='https://www.vacations-abroad.com/quoteresponse.aspx?respid={21}' style='padding:3px 20px;border:1px solid #000;cursor: pointer;color: #f86308;text-decoration: none;font-size:12pt;font-family: Verdana;'> <b>Book Now</b> </a> </td> </tr> <tr> <td style='text-align: center;'> <img src='https://www.vacations-abroad.com/images/elogo.jpg' style='width:240px;height: 100px;' width='240' height='100' /> </td> </tr> </table> </body>"; decimal _total = _total_sum + _balance; string msg = String.Format(toTraveler, DateTime.Now.ToString("MMM d, yyyy"), inquiryinfo.ContactorName, "https://www.vacations-abroad.com/images/" + propinfo.FileName, propinfo.Name2, propinfo.CategoryTypes, url, propinfo.ID, inquiryinfo.ArrivalDate, inquiryinfo.Nights, inquiryinfo.Adults, inquiryinfo.Children, userinfo.name, BookDBProvider.DoFormat(_total), BookDBProvider.DoFormat(_total_sum), BookDBProvider.DoFormat(_rates), BookDBProvider.DoFormat(_cleanfee), BookDBProvider.DoFormat(_secfee), _lodgingtax, BookDBProvider.DoFormat(_balance), currency.SelectedItem.Text, BookDBProvider.DoFormat(_lodgingvalue), AjaxProvider.Base64Encode(newrespid.ToString()), "<style>a:hover{color:#8bbdeb;} </style>", comment.InnerText); //BookDBProvider.SendEmail(traveler.email, toTraveler, "You have received the response from the property owner"); BookDBProvider.SendEmail(inquiryinfo.ContactorEmail, String.Format("{0}, here is your quote for {1}", inquiryinfo.ContactorName, inquiryinfo.ArrivalDate), msg); BookDBProvider.SendEmail("*****@*****.**", String.Format("{0} has responded to {1}", userinfo.name, inquiryinfo.ContactorName), msg); if (AuthenticationManager.IfAdmin) { Response.Redirect("/userowner/listings.aspx?userid=" + inquiryinfo.PropertyOwnerID); } else { Response.Redirect("/userowner/listings.aspx"); } }
protected void sendcomments_Click(object sender, EventArgs e) { string comments = Request["comments"]; // Response.Write(comments); if (comments == "") { return; } int newrespid = 0; int _currency = Convert.ToInt32(currency.SelectedValue); if ((newrespid = BookDBProvider.addEmailResponse(inquiryinfo.PropertyOwnerID, inquiryinfo.UserID, quoteid, 0, 0, 0, 0, 0, 0, 0, DateTime.Now, -1, _currency, comments)) > 0) { BookDBProvider.updateEmailQuoteState(quoteid); } UserInfo userinfo = BookDBProvider.getUserInfo(inquiryinfo.PropertyOwnerID); // BookResponseEmail /for owner string toOwner = String.Format("Hi, {0}!<br> You have replied the inquiry for the property {1} in {2},{3},{4}.<br> Thanks.", userinfo.firstname + " " + userinfo.lastname, inquiryinfo.PropertyID, countryinfo.city, countryinfo.state, countryinfo.country); BookDBProvider.SendEmail(userinfo.email, "You have replied for the inquiry", toOwner); PropertyDetailInfo propinfo = AjaxProvider.getPropertyDetailInfo(inquiryinfo.PropertyID); string url = String.Format("https://www.vacations-abroad.com/{0}/{1}/{2}/{3}/default.aspx", propinfo.Country, propinfo.StateProvince, propinfo.City, propinfo.ID).ToLower().Replace(" ", "_"); //To traveler // UserInfo traveler = BookDBProvider.getUserInfo(inquiryinfo.UserID); string toTraveler = @"<body> <table border='0px' width='600px' > <tr> <td> <table style='width:600px;'> <tr> <td style='color:#000;font-size:16pt;width:300px;font-family: Verdana;'> <b>Vacations Abroad</b> </td> <td style='color:#000;font-size:10pt;width:300px;text-align: right;font-family: Verdana;'> {0} </td> </tr> </table> </td> </tr> <tr> <td bgcolor='#4472c4' style='border:1px solid #2f528f;text-align:center;padding: 10px 0px;color:#fff;font-size:12pt;font-family: Verdana;'> <a style='cursor: pointer;color: #fff;text-decoration: none;font-size:12pt;font-family: Verdana;'> <b>Sorry! The property is not available on {6}<b> </a> </td> </tr> <tr> <td style='text-align: center;padding: 10px 0px;'> <img src='{1}' style='width:350px;height: 220px;' width='350' height='220' /> </td> </tr> <tr> <td style='text-align: center;font-size:10pt;font-family: Verdana;'> Name of property:{2} Type of property:{3} </td> </tr> <tr> <td style='padding: 10px;'> <table style='border:1px dashed #000;width:600px;font-size:12pt;'> <tr> <td style='padding:10px;font-family: Verdana;'> <a href='{4}'>Property {5}</a> <br/> Date of Arrival: {6} <br/> {7} of nights <br/> # of Guests: {8} Adults, {9} children <br/><br/> </td> </tr> <tr> <td style='background: none; border: dotted 1px #999999; border-width:1px 0 0 0; height:1px;font-size:1px;'></td> </tr> <tr> <td style='padding:3px;font-family: Verdana;'> Comment:{10}<br/> </td> </tr> </table> </td> </tr> <tr> <td style='padding: 15px; text-align: center;'> <a style='padding:3px 20px;border:1px solid #000;cursor: pointer;color: #f86308;text-decoration: none;font-size:12pt;font-family: Verdana;'> <b>Sorry! The property is not available on {6}</b> </a> </td> </tr> <tr> <td style='text-align: center;'> <img src='https://www.vacations-abroad.com/images/elogo.jpg' style='width:240px;height: 100px;' width='240' height='100' /> </td> </tr> </table> </body>"; string msg = String.Format(toTraveler, DateTime.Now.ToString("MMM d, yyyy"), "https://www.vacations-abroad.com/images/" + propinfo.FileName, propinfo.Name2, propinfo.CategoryTypes, url, propinfo.ID, inquiryinfo.ArrivalDate, inquiryinfo.Nights, inquiryinfo.Adults, inquiryinfo.Children, comments); //BookDBProvider.SendEmail(traveler.email, toTraveler, "You have received the response from the property owner"); BookDBProvider.SendEmail(inquiryinfo.ContactorEmail, String.Format("{0}, here is your quote for {1}", inquiryinfo.ContactorName, inquiryinfo.ArrivalDate), msg); BookDBProvider.SendEmail("*****@*****.**", String.Format("{0} has responded to {1}", userinfo.name, inquiryinfo.ContactorName), msg); if (AuthenticationManager.IfAdmin) { Response.Redirect("/userowner/listings.aspx?userid=" + inquiryinfo.PropertyOwnerID); } else { Response.Redirect("/userowner/listings.aspx"); } }
public JsonResult processRequest() { JsonResult jsonresult = new JsonResult(); if (!AuthenticationManager.IfAuthenticated || !User.Identity.IsAuthenticated) { jsonresult.error = "Not Signed"; return(jsonresult); } else if (HttpContext.Current.Request.HttpMethod != "POST") { jsonresult.error = "The function works in POST method"; return(jsonresult); } //else{} //If the user is signed if (!Int32.TryParse(Request["propid"], out propid)) { propid = -1; } //Validate parameters from the request int wizard_step = -1; if (!Int32.TryParse(Request["wizardstep"], out wizard_step)) { wizard_step = -1; } if (wizard_step == -1) { jsonresult.error = "Wizard Step is not set."; return(jsonresult); } if (!ValdateWizardStep(wizard_step)) //Valdation for step parameters by step number { jsonresult.error = "Wizard Step is not set."; return(jsonresult); } if (wizard_step == 0 && (propid == -1 || propid == 0)) { propid = createNewProperty(); if (propid == -1) { jsonresult.error = "Server something wrong error: get new property id"; return(jsonresult); } } else //For the existed property { if (propid == -1 || propid == 0) { jsonresult.error = "Server something wrong error: step is not 0, and propid is -1"; return(jsonresult); } propinfo = AjaxProvider.getPropertyDetailInfo(propid); if (propinfo.UserID != userid && !AuthenticationManager.IfAdmin) { jsonresult.error = "You are trying to do malicious action. Property doesn't include to you."; return(jsonresult); } if (UpdatePropertyInfo(wizard_step) == -1) { jsonresult.error = "Server something wrong error: update property info step " + wizard_step; return(jsonresult); } } List <SqlParameter> param = new List <SqlParameter>(); if (propid > 0) { propinfo = AjaxProvider.getPropertyDetailInfo(propid); //Get the property id jsonresult.propinfo = propinfo; if (wizard_step == 1) { param.Add(new SqlParameter("@propid", propid)); amenity_list = MainHelper.getListFromDB <AmenityInfo>("uspGetPropertyAmenity", param); jsonresult.amenity_list = amenity_list; param.Clear(); param.Add(new SqlParameter("@propid", propid)); jsonresult.room_furniture = CommonProvider.getJsonStringFromDs(BookDBProvider.getDataSet("uspGetRoomFurnitures", param)); } else if (wizard_step == 2) { param.Clear(); param.Add(new SqlParameter("@propid", propid)); jsonresult.attractions = CommonProvider.getJsonStringFromDs(BookDBProvider.getDataSet("uspGetPropertyAttractionByID", param)); } } jsonresult.propid = propid; if (propid == propinfo.ID) { jsonresult.status = 0; } return(jsonresult); }
protected void Page_Load(object sender, EventArgs e) { if (HttpContext.Current.Request.HttpMethod != "POST") { Response.Write("Wrong request"); return; } context = HttpContext.Current; parseTransaction(); PaymentHelper.addPaymentLog(transitem); email_resp = BookResponseEmail.getResponseInfo(transitem.item_number); //respid // if (email_resp.ID == 0 || email_resp.IsValid < 1) Response.Redirect("/Error.aspx?error=Wrong Response number or not valid"); inquiryinfo = BookDBProvider.getQuoteInfo(email_resp.QuoteID); owner_info = BookDBProvider.getDetailedUserInfo(inquiryinfo.PropertyOwnerID); // traveler_info = BookDBProvider.getUserInfo(inquiryinfo.UserID); prop_info = AjaxProvider.getPropertyDetailInfo(inquiryinfo.PropertyID); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // string requestUriString = "https://www.sandbox.paypal.com/cgi-bin/webscr"; string requestUriString = "https://www.paypal.com/cgi-bin/webscr"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUriString); string strFormValues = Encoding.ASCII.GetString( context.Request.BinaryRead(context.Request.ContentLength)); // Set values for the request back request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; string obj2 = strFormValues + "&cmd=_notify-validate"; request.ContentLength = obj2.Length; /* * System.IO.StreamWriter file = new System.IO.StreamWriter(Server.MapPath("/logwrite.txt")); * file.Write(obj2); * file.Close(); */ // Write the request back IPN strings StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII); writer.Write(RuntimeHelpers.GetObjectValue(obj2)); writer.Close(); //send the request, read the response HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding("utf-8"); StreamReader reader = new StreamReader(responseStream, encoding); string resp = reader.ReadToEnd(); //_total_sum = email_resp.NightRate * inquiryinfo.Nights; _total_sum = email_resp.NightRate; _lodgingval = _total_sum * email_resp.LoadingTax / 100; _balance = _lodgingval + email_resp.CleaningFee + email_resp.SecurityDeposit; _total = _total_sum + _balance; /* * System.IO.StreamWriter sfile = new System.IO.StreamWriter(Server.MapPath("/log.txt")); * sfile.Write(resp); * sfile.Close(); */ int discount; if (transitem.custom.Length == 13) { List <SqlParameter> param = new List <SqlParameter>(); param.Add(new SqlParameter("@coupon", transitem.custom)); DataSet ds_coupon = BookDBProvider.getDataSet("uspGetCouponItem", param); if (ds_coupon.Tables[0].Rows.Count > 0) { if (!int.TryParse(ds_coupon.Tables[0].Rows[0]["Discount"].ToString(), out discount)) { discount = 0; } _total = _total_sum * (100 - discount) / 100 + _balance; } } _total = Decimal.Parse(BookDBProvider.DoFormat(_total)); if (resp == "VERIFIED") { //if(transitem.business == ConfigurationManager.AppSettings["PaypalEmail"].ToString() && transitem.txn_type!= "reversal") /* System.IO.StreamWriter ssfile = new System.IO.StreamWriter(Server.MapPath("/logt.txt")); * ssfile.Write(resp); * ssfile.Close(); */ // if (transitem.business == "*****@*****.**" && transitem.txn_type != "reversal") if (transitem.business == ConfigurationManager.AppSettings["PaypalEmail"].ToString() && transitem.txn_type != "reversal") { if ((transitem.mc_gross == (_total)) && transitem.payment_status == "Completed" && transitem.mc_currency == currency_type[email_resp.CurrencyType]) { PaymentHelper.addPaymentHistory(transitem, inquiryinfo); BookResponseEmail.updateEmailResponseState(transitem.item_number); string format_traveler = @"This is your receipt for your reservation with Vacations-Abroad.com <br/> This email confirms that {0} has booked a reservation with {1}. <br/> Your Arrival Date is: {2} <br/> You paid: {3} {4} on {5} <br/> The owner’s cancellation policy is <br/> 90 days prior to arrival:{6}% <br/> 60 days prior to arrival:{7}% <br/> 30 days prior to arrival:{8}% <br/> Owner Contact Details <br/> Owner Name:{9} <br/> Owner Email:{10} <br/> Owner Telephone:{11} <br/> Name of Property:{1} <br/> Owner Website: {12} <br/> Please contact the owner to obtain the actual property address. <br/> If you do not cancel, the funds will be transferred to the owner on (7 days prior to your {13}) <br/> When you return, please write a review of the property and add photos. <br/>"; string msg_traveler = String.Format(format_traveler, inquiryinfo.ContactorName, prop_info.PropertyName, DateTime.Parse(inquiryinfo.ArrivalDate).ToString("MMM d, yyyy"), transitem.mc_gross, transitem.mc_currency, DateTime.Now.ToString("MMM d, yyyy"), email_resp.Cancel90, email_resp.Cancel60, email_resp.Cancel30 , String.Format("{0} {1}", owner_info.FirstName, owner_info.LastName), owner_info.Email, owner_info.MobileTelephone, owner_info.Website, DateTime.Parse(inquiryinfo.ArrivalDate).ToString("MMM d, yyyy")); string trv_subject = String.Format("Reservation Confirmation for {0}", DateTime.Now.ToString("MMM d, yyyy")); BookDBProvider.SendEmail(inquiryinfo.ContactorEmail, trv_subject, msg_traveler); string format_owner = @"This is a confirmation for the reservation completed through Vacations-Abroad.com <br/> This email confirms that {0} has booked a reservation with {1}. <br/> Arrival Date is: {2} <br/> They have paid: {3} {4} on {5} <br/> The owner’s cancellation policy is <br/> 90 days prior to arrival:{6}% <br/> 60 days prior to arrival:{7}% <br/> 30 days prior to arrival:{8}% <br/><br/> Traveler Contact Details <br/><br/> Traveler Name:{9} <br/> Traveler Email:{10} <br/> Traveler Telephone:{11} <br/><br/> Please contact the traveler to provide them with directions to your property and inform them of any check-in procedures. <br/> If the Traveler does not cancel, the funds will be transferred to your Paypal or bank account (7 days prior to your {2}) less a 10% commission fee. If any fees such as cleaning fees, security deposit or lodging taxes are to be collected by you at arrival. <br/> You have specified these additional fees are due at arrival. <br/> Cleaning:{12} {4} <br/> Security Deposit:{13} {4}<br/> Lodging Tax:{14} {4}<br/><br/> Let us know if we can be of further assistance. <br/> Linda Jenkins <br/> 770-687-6889 <br/>"; string owner_subject = String.Format("Reservation Confirmation for {0}", DateTime.Now.ToString("MMM d, yyyy")); string msg_owner = String.Format(format_owner, inquiryinfo.ContactorName, prop_info.PropertyName , DateTime.Parse(inquiryinfo.ArrivalDate).ToString("MMM d, yyyy"), transitem.mc_gross, transitem.mc_currency, DateTime.Now.ToString("MMM d, yyyy"), email_resp.Cancel90, email_resp.Cancel60, email_resp.Cancel30, inquiryinfo.ContactorName, inquiryinfo.ContactorEmail, inquiryinfo.Telephone, BookDBProvider.DoFormat(email_resp.CleaningFee), BookDBProvider.DoFormat(email_resp.SecurityDeposit), BookDBProvider.DoFormat(_lodgingval)); BookDBProvider.SendEmail(owner_info.Email, owner_subject, msg_owner); BookDBProvider.SendEmail("*****@*****.**", String.Format("{0} has paid for property {1} Transaction:{2}", inquiryinfo.ContactorName, transitem.item_number, transitem.txn_id), msg_owner); BookDBProvider.SendEmail("*****@*****.**", "Notification: Transaction:" + transitem.txn_id, msg_owner); } } } else { } }