public async Task <IHttpActionResult> InvoiceCodeExist(string invNumber) { var processingResult = new ServiceProcessingResult <bool> { IsSuccessful = true }; try { var sqlQuery = "SELECT Invno FROM InvoiceInfo WHERE Invno=@InvNumber"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var sqlQueryService = new SQLQuery(); var getInoviceCodeResult = await sqlQueryService.ExecuteReaderAsync(CommandType.Text, sqlQuery, parameters); if (!getInoviceCodeResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting invoice code", "Error getting invoice code", true, false); return(Ok(processingResult)); } if (getInoviceCodeResult.Data.Rows.Count > 0) { processingResult.Data = true; } else { processingResult.Data = false; } } catch (Exception ex) { ex.ToExceptionless().Submit(); } return(Ok(processingResult)); }
public async Task <IHttpActionResult> GetOrders(string invno) { var processingResult = new ServiceProcessingResult <List <OrderData> > { IsSuccessful = true }; var parameters = new MySqlParameter[] { new MySqlParameter("@Invno", invno) }; var sqlText = @" SELECT orders.Teacher, orders.ItemAmount, orders.Itemqty, orders.OrderId, orders.OrdDate, orders.Grade, orders.Studentfname, orders.Studentlname, orders.Itemtotal, orders.Booktype, orders.Emailaddress, orders.Perstext1,orders.Paytype, orders.Schname, payment.Transid,L1.caption as 'Icon1',L2.caption as 'Icon2',L3.caption as 'Icon3',L4.caption as 'Icon4',payment.Payerfname,payment.Payerlname FROM orders INNER JOIN payment ON orders.orderid = payment.orderid left join lookup as L1 on orders.icon1=L1.ivalue left join lookup as L2 on orders.icon2=L2.ivalue left join lookup as L3 on orders.icon3=L3.ivalue left join lookup as L4 on orders.icon4=L4.ivalue WHERE (orders.schinvoicenumber = @Invno) ORDER BY orders.orddate, orders.orderid"; var sqlQuery = new SQLQuery(); var getOrderResult = await sqlQuery.ExecuteReaderAsync <OrderData>(CommandType.Text, sqlText, parameters); if (!getOrderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error retrieving orders.", "Error retrieving orders.", true, false); return(Ok(processingResult)); } var orderlist = (List <OrderData>)getOrderResult.Data; processingResult.Data = orderlist; return(Ok(processingResult)); }
public async Task <IHttpActionResult> GetAllTeachers(string schcode) { var processingResult = new ServiceProcessingResult <List <TeacherData> > { IsSuccessful = true }; var sqlQuery = new SQLQuery(); var sqlText = "Select Teacher,Grade,Schcode,Id from DropDownInfo Where Schcode=@Schcode Order By Teacher"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@Schcode", schcode), }; var getTeacherResult = await sqlQuery.ExecuteReaderAsync <TeacherData>(CommandType.Text, sqlText, parameters); if (!getTeacherResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to retrieve teachers.", "Failed to retrieve teachers.", true, false); ExceptionlessClient.Default.CreateLog("Failed to retrieve teachers.", "Error").AddObject(schcode).Submit(); return(Ok(processingResult)); } var teacherList = (List <TeacherData>)getTeacherResult.Data; processingResult.Data = teacherList; return(Ok(processingResult)); }
public async Task <IHttpActionResult> Login(Credentials cred) { var processingResult = new ServiceProcessingResult <LoginReturn> { IsSuccessful = true }; try { var sqlQuery = "SELECT schcode,schname,invno FROM InvoiceInfo WHERE Schcode=@Schcode AND Invno=@Invno"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@Invno", cred.password), new MySqlParameter("@Schcode", cred.schcode) }; var sqlQueryService = new SQLQuery(); var getLoginResult = await sqlQueryService.ExecuteReaderAsync <LoginReturn>(CommandType.Text, sqlQuery, parameters); if (!getLoginResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to login.", "Failed to login.", true, false); ExceptionlessClient.Default.CreateLog(typeof(InvoiceController).FullName, "Login failed", "Error").AddObject(cred).AddTags("Controller Error").Submit(); return(Ok(processingResult)); } var retval = (List <LoginReturn>)getLoginResult.Data; if (retval == null) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Improper Credeintials.", "Improper Credentials.", true, false); return(Ok(processingResult)); } if (retval.Count == 1) { processingResult.Data = retval[0]; } else { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Improper Credeintials.", "Improper Credentials.", true, false); } return(Ok(processingResult)); } catch (Exception ex) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to login.", "Failed to login.", true, false); ex.ToExceptionless() .SetMessage("Login Failed") .Submit(); return(Ok(processingResult)); } }
public async Task <IHttpActionResult> SchoolExist(string schcode) { var processingResult = new ServiceProcessingResult <SchoolExist> { IsSuccessful = true }; try { var sqlQuery = @"Select Schname,Schcode from Cust where Schcode=@Schcode"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@Schcode", schcode) }; var sqlQueryService = new SQLQuery(); var getSchoolResult = await sqlQueryService.ExecuteReaderAsync <SchoolExist>(CommandType.Text, sqlQuery, parameters); if (!getSchoolResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error looking up school.", "Error looking up school.", true, false); ExceptionlessClient.Default.CreateLog("Error looking up school.") .MarkAsCritical() .AddObject(schcode); return(Ok(processingResult)); } processingResult.IsSuccessful = true; var result = (List <SchoolExist>)getSchoolResult.Data; if (result == null) { processingResult.Data = null; } else { processingResult.Data = result[0];//only one record } } } catch (Exception ex) { ex.ToExceptionless() .SetMessage("Error looing up school code.") .Submit(); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error looking up school.", "Error looking up school.", true, false); return(Ok(processingResult)); } return(Ok(processingResult)); }
public async Task <IHttpActionResult> GetStates() { var processingResult = new ServiceProcessingResult <List <StateBindingModel> > { IsSuccessful = true }; try { var sqlQuery = "SELECT * FROM states order by name"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", "1") }; var sqlQueryService = new SQLQuery(); var stateResult = await sqlQueryService.ExecuteReaderAsync(CommandType.Text, sqlQuery, parameters); if (!stateResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting states", "Error getting ", true, false); return(Ok(processingResult)); } if (stateResult.Data.Rows.Count > 0) { List <StateBindingModel> States = new List <StateBindingModel>(); foreach (DataRow row in stateResult.Data.Rows) { StateBindingModel state = new StateBindingModel(); state.Abrv = row["abrv"].ToString(); state.Name = row["name"].ToString(); States.Add(state); } processingResult.Data = States; processingResult.IsSuccessful = true; } else { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to retrieve states", "Failed to retrieve states", true, false); } } catch (Exception ex) { ex.ToExceptionless().Submit(); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to retrieve states", "Failed to retrieve states", true, false); } return(Ok(processingResult)); }
public async Task <IHttpActionResult> DuplicateOrderChk(OrdChkData model) { var processingResult = new ServiceProcessingResult <OrderData> { IsSuccessful = true }; var parameters = new MySqlParameter[] { new MySqlParameter("@StudentLname", model.StudentLname), new MySqlParameter("@StudentFname", model.StudentFname), new MySqlParameter("@SchInvoiceNumber", model.ShcInvoicenumber) }; var sqlText = @" SELECT OrderId,Studentfname,Studentlname,OrdDate From Orders Where StudentLname=@StudentLname and StudentFname=@StudentFname and SchInvoiceNumber=@SchInvoiceNumber"; var sqlQuery = new SQLQuery(); var getOrderResult = await sqlQuery.ExecuteReaderAsync <OrderData>(CommandType.Text, sqlText, parameters); if (!getOrderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error Checking for duplicate orders.", "Error checking for duplicate orders.", true, false); ExceptionlessClient.Default.CreateLog("Error Checking for duplicate orders.").Submit(); return(Ok(processingResult)); } var orderList = (List <OrderData>)getOrderResult.Data; if (orderList == null) { processingResult.Data = null; } else { processingResult.Data = orderList[0]; } return(Ok(processingResult)); }
public async Task <IHttpActionResult> GetBillingInfo(int orderid) { var processingResult = new ServiceProcessingResult <List <OrderBillingBindingModel> > { IsSuccessful = true }; var sqlQuery = "SELECT distinct Schcode,Schname,Schinvoicenumber,Emailaddress,Studentfname,Studentlname,Sum(itemtotal) as Total FROM `temporders` o where Orderid =@OrderId"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@OrderId", orderid) }; var sqlQueryService = new SQLQuery(); var orderResult = await sqlQueryService.ExecuteReaderAsync <OrderBillingBindingModel>(CommandType.Text, sqlQuery, parameters); if (!orderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error retrieving billing information.", "Error retrieving billing information.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } if (orderResult.Data != null) { processingResult.Data = (List <OrderBillingBindingModel>)orderResult.Data; processingResult.IsSuccessful = true; } else { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to retrieve billing information.", "Failed to retrieve billing information.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, "Failed to retrieve billing information.", "Error"); } return(Ok(processingResult)); }
public async Task <IHttpActionResult> GetSchoolReceipt(string transid) { var processingResult = new ServiceProcessingResult <PaymentBindingModel> { IsSuccessful = true }; //Get the order first thing to make sure we have it. try { var sqlQuery = "SELECT Schname,Schcode,PayerFname,PayerLname,Poamt,PayType,TransId,AuthCode,CustEmail,Ddate,OrderId from Payment where transid=@Transid"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@Transid", transid) }; var sqlQueryService = new SQLQuery(); var payResult = await sqlQueryService.ExecuteReaderAsync <PaymentBindingModel>(CommandType.Text, sqlQuery, parameters); if (!payResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError(payResult.Error.UserMessage, payResult.Error.UserMessage, true, false); ExceptionlessClient.Default.CreateLog(typeof(OrderController).FullName, payResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } List <PaymentBindingModel> payments = (List <PaymentBindingModel>)payResult.Data; PaymentBindingModel payment = payments[0];//should only be one payment processingResult.Data = payment; return(Ok(processingResult)); }catch (Exception ex) { ex.ToExceptionless() .SetMessage("Error retrieving payment for school receipt."); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError(ex.Message, ex.Message, true, false); return(Ok(processingResult)); } }
public async Task <IHttpActionResult> InvoiceInit(string invNumber) { var processingResult = new ServiceProcessingResult <InvoiceInitBindingModel> { IsSuccessful = true }; try { //var sqlQuery = @"SELECT I.schcode, I.invno, D.teacher, D.id FROM invoiceinfo I LEFT JOIN dropdowninfo D ON I.schcode=D.schcode WHERE I.invno=@InvNumber ORDER BY D.teacher"; var sqlQuery = @"SELECT I.schcode, I.invno, D.teacher,D.grade, D.id FROM invoiceinfo I INNER JOIN dropdowninfo D ON I.schcode=D.schcode WHERE I.invno=@InvNumber ORDER BY D.teacher"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var sqlQueryService = new SQLQuery(); var getInvoiceTeacherLookupResult = await sqlQueryService.ExecuteReaderAsync <InvoiceTeacherLookupBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getInvoiceTeacherLookupResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting teachers", "Error getting teachers", true, false); ExceptionlessClient.Default.SubmitLog("Error getting teachers"); return(Ok(processingResult)); } //sqlQuery = @"SELECT I.schcode, D.grade, D.id FROM invoiceinfo I LEFT JOIN dropdowninfo D ON I.schcode = D.schcode WHERE I.invno=@InvNumber ORDER BY D.grade"; sqlQuery = @"SELECT DISTINCT I.schcode, D.grade FROM invoiceinfo I INNER JOIN dropdowninfo D ON I.schcode = D.schcode WHERE I.invno=@InvNumber ORDER BY D.grade"; parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var getInvoiceGradeLookupResult = await sqlQueryService.ExecuteReaderAsync <InvoiceGradeLookupBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getInvoiceGradeLookupResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting grades", "Error getting grades", true, false); ExceptionlessClient.Default.SubmitLog("Error getting grades"); return(Ok(processingResult)); } sqlQuery = @"SELECT id, cvalue, isortorder, caption, ivalue, csortorder FROM Lookup"; var getInvoiceIconLookupResult = await sqlQueryService.ExecuteReaderAsync <InvoiceIconLookupBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getInvoiceIconLookupResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting icons", "Error getting icons", true, false); ExceptionlessClient.Default.SubmitLog("Error getting icons"); return(Ok(processingResult)); } sqlQuery = @"SELECT I.schname AS schoolname, I.* FROM invoiceinfo I WHERE I.invno=@InvNumber"; parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var getSchoolNameResult = await sqlQueryService.ExecuteReaderAsync <InvoiceSchoolNameBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getSchoolNameResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting school name", "Error getting school name", true, false); ExceptionlessClient.Default.SubmitLog("Error getting school name"); return(Ok(processingResult)); } processingResult.IsSuccessful = true; var invoiceInfoList = (List <InvoiceSchoolNameBindingModel>)getSchoolNameResult.Data; var invoiceInfo = invoiceInfoList[0]; decimal basicinvamt, iconamt, inkpersamt, foilpersamt, picpersamt, foiltxtamt, inktxtamt, luvlineamt, fulladlineamt, halfadlineamt, quarteradlineamt, eighthadlineamt; decimal.TryParse(invoiceInfo.basicinvamt, out basicinvamt); processingResult.Data = new InvoiceInitBindingModel(); processingResult.Data.SchCode = invoiceInfo.schcode; processingResult.Data.Invno = invoiceInfo.invno; processingResult.Data.BasicOnly = invoiceInfo.basiconly; processingResult.Data.BasicInvAmt = decimal.TryParse(invoiceInfo.basicinvamt, out basicinvamt) ? basicinvamt :0; Convert.ToDecimal(invoiceInfo.basicinvamt); processingResult.Data.InkPers = invoiceInfo.inkpers; processingResult.Data.InkPersAmt = decimal.TryParse(invoiceInfo.inkpersamt, out inkpersamt) ? inkpersamt : 0; processingResult.Data.FoilPers = invoiceInfo.foilpers; processingResult.Data.FoilPersAmt = decimal.TryParse(invoiceInfo.foilpersamt, out foilpersamt) ? foilpersamt : 0; processingResult.Data.IconAmt = invoiceInfo.iconamt; processingResult.Data.PicPers = invoiceInfo.picpers; processingResult.Data.PicPersAmt = decimal.TryParse(invoiceInfo.picpersamt, out picpersamt) ? picpersamt : 0; processingResult.Data.FoilTxtAmt = decimal.TryParse(invoiceInfo.foiltxtamt, out foiltxtamt) ? foiltxtamt : 0; processingResult.Data.FoilTxt = invoiceInfo.foiltxt; processingResult.Data.InkText = invoiceInfo.inktxt; processingResult.Data.InkTextAmt = decimal.TryParse(invoiceInfo.inktxtamt, out inktxtamt) ? inktxtamt : 0; processingResult.Data.LuvLines = invoiceInfo.luvlines; processingResult.Data.LuvLineAmt = decimal.TryParse(invoiceInfo.luvlineamt, out luvlineamt) ? luvlineamt : 0; processingResult.Data.AdLine = invoiceInfo.adline; processingResult.Data.FullAdlineAmt = decimal.TryParse(invoiceInfo.fulladlineamt, out fulladlineamt) ? fulladlineamt : 0; processingResult.Data.HalfAdlineAmt = decimal.TryParse(invoiceInfo.halfadlineamt, out halfadlineamt) ? halfadlineamt : 0; processingResult.Data.QuaterAdlineAmt = decimal.TryParse(invoiceInfo.quarteradlineamt, out quarteradlineamt) ? quarteradlineamt : 0; processingResult.Data.EightAdlineAmt = decimal.TryParse(invoiceInfo.eighthadlineamt, out eighthadlineamt) ? eighthadlineamt : 0; processingResult.Data.OnlineCuto = invoiceInfo.onlinecuto; processingResult.Data.Adcuto = invoiceInfo.adcuto; processingResult.Data.schoolname = invoiceInfo.schoolname; processingResult.Data.Teachers = (List <InvoiceTeacherLookupBindingModel>)getInvoiceTeacherLookupResult.Data; processingResult.Data.Grades = (List <InvoiceGradeLookupBindingModel>)getInvoiceGradeLookupResult.Data; processingResult.Data.Icons = (List <InvoiceIconLookupBindingModel>)getInvoiceIconLookupResult.Data; } catch (Exception ex) { ex.ToExceptionless().Submit(); } return(Ok(processingResult)); }
protected void EmailReceipt(string orderid) { //Get the order first thing to make sure we have it. ReceiptBindingModel Receipt = new ReceiptBindingModel(); try { var sqlQuery = "SELECT Orders.Id,OrderId,PayType,Grade,BookType,Teacher,PersText1,Studentfname,Studentlname,Emailaddress,Schcode,ItemAmount,Itemqty,Schinvoicenumber,Orddate,ItemTotal,Schname,Yr,l1.caption as Caption1,l2.caption As Caption2,l3.caption As Caption3,l4.caption As Caption4 FROM Orders Left Join lookup l1 On l1.ivalue=Orders.icon1 Left Join lookup l2 on l2.ivalue=Orders.icon2 Left Join lookup l3 on l3.ivalue=Orders.icon3 Left Join lookup l4 on l4.ivalue=Orders.icon4 where orderid=@OrderId"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@OrderId", orderid) }; var sqlQueryService = new SQLQuery(); var orderResult = sqlQueryService.ExecuteReaderAsync <OrderBindingModel>(CommandType.Text, sqlQuery, parameters); if (!orderResult.Result.IsSuccessful) { ExceptionlessClient.Default.CreateLog(typeof(TempOrderController).FullName, orderResult.Result.Error.UserMessage, "Error"); } Receipt.Items = (List <OrderBindingModel>)orderResult.Result.Data; var hasAd = false; foreach (var order in Receipt.Items) { switch (order.BookType) { case "Full Page Ad": hasAd = true; break; case "1/2 Page Ad": hasAd = true; break; case "1/4 Page Ad": hasAd = true; break; case "1/8 Page Ad": hasAd = true; break; } } MySqlParameter[] payParameters = new MySqlParameter[] { new MySqlParameter("@OrderId", orderid) }; var sqlQueryService1 = new SQLQuery(); sqlQuery = "Select Schcode,PayerFname,PayerLname,Poamt,PayType,TransId, AuthCode,CustEmail,Ddate,OrderId,Schname from Payment where orderid=@OrderId"; var payResult = sqlQueryService.ExecuteReaderAsync <PaymentBindingModel>(CommandType.Text, sqlQuery, payParameters); if (!payResult.Result.IsSuccessful) { ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Result.Error.UserMessage, "Error"); } List <PaymentBindingModel> payments = (List <PaymentBindingModel>)payResult.Result.Data; PaymentBindingModel payment = payments[0];//should only be one payment Receipt.Schname = payment.Schname; Receipt.Schcode = payment.Schcode; Receipt.PayerFname = payment.PayerFname; Receipt.PayerLname = payment.PayerLname; Receipt.Payment = payment.Poamt; Receipt.PayType = payment.PayType; Receipt.TransId = payment.TransId; Receipt.AuthCode = payment.AuthCode; Receipt.OrderId = payment.OrderId; Receipt.CustomerEmail = payment.CustEmail; Receipt.OrderDate = payment.Ddate; Receipt.Payment = payment.Poamt; var body = ""; var hbody = "<div class='form-group col-md-12'><label style = 'font-size:x-large' ><strong>Thank you for your payment</strong></label></div>" + "<div class='form-group'><div class='col-sm-6'><strong>School Name: </strong>" + payment.Schname + "</div></div>" + "<div class='form-group'> <div class='col-sm-6'><strong>School Code: </strong>" + payment.Schcode + "</div></div>" + " <div class='form-group'> <div class='col-sm-6'><strong>Payer Name: </strong>" + payment.PayerFname + " " + payment.PayerLname + "</div></div>" + " <div class='form-group'> <div class='col-sm-6'><strong>Order Date: </strong>" + payment.Ddate.ToString("MM/dd/yyyy") + "</div></div>" + "<div class='form-group'> <div class='col-sm-6'><strong>Order Id: </strong>" + payment.OrderId + "</div></div>" + "<div class='form-group'> <div class='col-sm-6'><strong>Pay Type: </strong>" + payment.PayType + "</div></div>" + "<div class='form-group'><div class='col-sm-6'><strong>Transaction Id: </strong>" + payment.TransId + "</div></div>" + "<div class='form-group'><div class='col-sm-6'><strong>Authorization Code: </strong>" + payment.AuthCode + "</div></div>" + "<div class='form-group'><div class='col-sm-6'><strong>Amount Paid: </strong>$" + payment.Poamt + "</div> </div><div></div>"; body = hbody; if (hasAd) { body = body + "<div style = 'font-size:larger' ><strong ><a href = 'http://mbcadpages.v5.pressero.com/' target = '_blank'> You have ordered an ad. Click here to configure your ad. (http://mbcadpages.v5.pressero.com/)</a></strong></div>"; } body = body + "<div style='color: red; margin - bottom:5px'><i>If you have questions about your order contact your school's yearbook advisor. </i></div><hr>"; foreach (var order in Receipt.Items) { var items = "<div style='margin:7px'><table>" + "<tr><td style='text-align:right'><strong> Item Quantity: </strong ></td><td>" + order.Itemqty + "</td></tr>" + "<tr><td style='text-align:right'><strong> Item: </strong></td><td> " + order.BookType + "</td></tr>" + "<tr><td style='text-align:right'><strong> Student Name: </strong></td><td> " + order.Studentfname + " " + order.Studentlname + "</td></tr>" + "<tr><td style='text-align:right'><strong> Teacher: </strong></td><td>" + order.Teacher + "</td></tr>" + "<tr><td style='text-align:right'><strong> Grade: </strong></td><td>" + order.Grade + "</td></tr>"; var text = ""; if (order.PersText1 != "" && order.PersText1 != "Not Available") { if (order.BookType == "Love Line") { text = "<tr><td style='text-align:right'><strong>Love Line: </strong></td><td >" + order.PersText1 + "</td></tr>"; items = items + text; } else if (order.BookType != "Love Line" && order.PersText1 != "") { text = "<tr><td style='text-align:right'><strong>Personalized Text :</strong></td><td>" + order.PersText1 + "</td></tr>"; items = items + text; } } var icontext = ""; if (order.BookType == "Personalized Ink Yearbook" || order.BookType == "Personalized Foil Yearbook") { icontext = "<tr><td style='text-align:right'><strong>Icons: </strong></td><td style='font-size:xx-small'><i>" + order.Caption1 + " " + order.Caption2 + " " + order.Caption3 + " " + order.Caption4 + "</i></td></tr>"; items = items + icontext; } items = items + "<tr><td style='text-align:right'>Item Amount: </td><td>$" + order.ItemTotal + "</td ></tr></table></div><div></div><hr>"; body = body + items; } var emailhelper = new Utilities.EmailHelper(); emailhelper.SendEmail("Receipt for a Parent Payment to Memory Book Company (Transaction Id " + Receipt.TransId + ") Using " + Receipt.PayType + " " + DateTime.Now.ToShortDateString(), Receipt.CustomerEmail, "", "*****@*****.**", body, Utils.EmailType.Mbc); } catch (Exception ex) { ex.ToExceptionless() .MarkAsCritical() .SetMessage("Failed to send receipt email.") .Submit(); } }
public async Task <IHttpActionResult> GetReceipt(string orderid) { var processingResult = new ServiceProcessingResult <ReceiptBindingModel> { IsSuccessful = true }; //Get the order first thing to make sure we have it. ReceiptBindingModel Receipt = new ReceiptBindingModel(); try { var sqlQuery = "SELECT Orders.Id,OrderId,PayType,Grade,BookType,Teacher,PersText1,Studentfname,Studentlname,Emailaddress,Schcode,ItemAmount,Itemqty,Schinvoicenumber,Orddate,ItemTotal,Schname,Yr,l1.caption as Caption1,l2.caption As Caption2,l3.caption As Caption3,l4.caption As Caption4 FROM Orders Left Join lookup l1 On l1.ivalue=Orders.icon1 Left Join lookup l2 on l2.ivalue=Orders.icon2 Left Join lookup l3 on l3.ivalue=Orders.icon3 Left Join lookup l4 on l4.ivalue=Orders.icon4 where orderid=@OrderId"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@OrderId", orderid) }; var sqlQueryService = new SQLQuery(); var orderResult = await sqlQueryService.ExecuteReaderAsync <OrderBindingModel>(CommandType.Text, sqlQuery, parameters); if (!orderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("There was an error retrieving your order receipt.", "There was an error retrieving your order receipt.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } Receipt.Items = (List <OrderBindingModel>)orderResult.Data; MySqlParameter[] payParameters = new MySqlParameter[] { new MySqlParameter("@OrderId", orderid) }; var sqlQueryService1 = new SQLQuery(); sqlQuery = "Select Schcode,PayerFname,PayerLname,Poamt,PayType,TransId, AuthCode,CustEmail,Ddate,OrderId,Schname from Payment where orderid=@OrderId"; var payResult = await sqlQueryService.ExecuteReaderAsync <PaymentBindingModel>(CommandType.Text, sqlQuery, payParameters); if (!payResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("There was an error retrieving your order receipt.", "There was an error retrieving your order receipt.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } List <PaymentBindingModel> payments = (List <PaymentBindingModel>)payResult.Data; PaymentBindingModel payment = payments[0];//should only be one payment Receipt.Schname = payment.Schname; Receipt.Schcode = payment.Schcode; Receipt.PayerFname = payment.PayerFname; Receipt.PayerLname = payment.PayerLname; Receipt.Payment = payment.Poamt; Receipt.PayType = payment.PayType; Receipt.TransId = payment.TransId; Receipt.AuthCode = payment.AuthCode; Receipt.OrderId = payment.OrderId; Receipt.CustomerEmail = payment.CustEmail; Receipt.OrderDate = payment.Ddate; Receipt.Payment = payment.Poamt; processingResult.Data = Receipt; } catch (Exception ex) { ex.ToExceptionless().Submit(); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("There was an error retrieving your order receipt.", "There was an error retrieving your order receipt.", true, false); return(Ok(processingResult)); } return(Ok(processingResult)); //---------------------------------------------------------------------- }
protected void EmailSchoolReceipt(string transid) { //Get the order first thing to make sure we have it. ReceiptBindingModel Receipt = new ReceiptBindingModel(); try { var sqlQuery = "SELECT Schname,Schcode,PayerFname,PayerLname,Poamt,PayType,TransId,AuthCode,CustEmail,Ddate,OrderId from Payment where transid=@Transid"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@Transid", transid) }; var sqlQueryService = new SQLQuery(); var payResult = sqlQueryService.ExecuteReaderAsync <PaymentBindingModel>(CommandType.Text, sqlQuery, parameters); if (!payResult.Result.IsSuccessful) { ExceptionlessClient.Default.CreateLog(typeof(OrderController).FullName, payResult.Result.Error.UserMessage, "Error"); } List <PaymentBindingModel> payments = (List <PaymentBindingModel>)payResult.Result.Data; PaymentBindingModel payment = payments[0];//should only be one payment Receipt.Schname = payment.Schname; Receipt.Schcode = payment.Schcode; Receipt.PayerFname = payment.PayerFname; Receipt.PayerLname = payment.PayerLname; Receipt.Payment = payment.Poamt; Receipt.PayType = payment.PayType; Receipt.TransId = payment.TransId; Receipt.AuthCode = payment.AuthCode; Receipt.OrderId = payment.OrderId; Receipt.CustomerEmail = payment.CustEmail; Receipt.OrderDate = payment.Ddate; Receipt.Payment = payment.Poamt; var body = ""; var hbody = "<div class='form-group col-md-12'><label style = 'font-size:x-large' ><strong>Thank you for your payment</strong></label></div>" + "<div class='form-group'><div class='col-sm-6'><strong>School Name: </strong>" + payment.Schname + "</div></div>" + "<div class='form-group'> <div class='col-sm-6'><strong>School Code: </strong>" + payment.Schcode + "</div></div>" + " <div class='form-group'> <div class='col-sm-6'><strong>Payer Name: </strong>" + payment.PayerFname + " " + payment.PayerLname + "</div></div>" + " <div class='form-group'> <div class='col-sm-6'><strong>Order Date: </strong>" + payment.Ddate.ToString("MM/dd/yyyy") + "</div></div>" + "<div class='form-group'> <div class='col-sm-6'><strong>Pay Type: </strong>" + payment.PayType + "</div></div>" + "<div class='form-group'><div class='col-sm-6'><strong>Transaction Id: </strong>" + payment.TransId + "</div></div>" + "<div class='form-group'><div class='col-sm-6'><strong>Authorization Code: </strong>" + payment.AuthCode + "</div></div>" + "<div class='form-group'><div class='col-sm-6'><strong>Amount Paid: </strong>$" + payment.Poamt + "</div> </div><div></div>"; body = hbody; //body = body + "<div style='color: red; margin - bottom:5px'><i>If you have questions about your order contact your schools yearbook advisor. </i></div><hr>"; var emailhelper = new Utilities.EmailHelper(); emailhelper.SendEmail("Receipt for a School Payment to Memory Book Company (Transaction Id " + Receipt.TransId + ") Using " + Receipt.PayType + " " + DateTime.Now.ToShortDateString(), Receipt.CustomerEmail, "", "*****@*****.**", body, Utils.EmailType.Mbc); } catch (Exception ex) { ex.ToExceptionless() .MarkAsCritical() .SetMessage("Failed to send receipt email.") .Submit(); } }
public async Task <IHttpActionResult> AuthNetSubmit(AuthNetBindingModel model) { var processingResult = new ServiceProcessingResult <List <OrderBindingModel> > { IsSuccessful = true }; //Get the order first thing to make sure we have it. List <OrderBindingModel> Orders = new List <OrderBindingModel>(); try { var sqlQuery = "SELECT Id,OrderId,PayType,Grade,BookType,Teacher,PersText1,Studentfname,Studentlname,Emailaddress,Schcode,ItemAmount,Itemqty,Schinvoicenumber,Orddate,ItemTotal,Schname,Yr,Icon1,Icon2,Icon3,Icon4,Josicon1,Josicon2,Josicon3,Josicon4 FROM temporders where orderid=@OrderId"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@OrderId", model.InvoiceNumber) }; var sqlQueryService = new SQLQuery(); var orderResult = await sqlQueryService.ExecuteReaderAsync <OrderBindingModel>(CommandType.Text, sqlQuery, parameters); if (!orderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error retrieving order.", "Error retrieving order.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } if (orderResult.Data == null) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error retrieving order.", "Error retrieving order.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } Orders = (List <OrderBindingModel>)orderResult.Data; } catch (Exception ex) { ex.ToExceptionless().Submit(); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error retrieving order.", "Error retrieving order.", true, false); return(Ok(processingResult)); } //---------------------------------------------------------------------- var authNetService = new AuthNetService(); var result = await authNetService.SubmittAsync(model); if (!result.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error submiting payment to Authorzie.net", "Error submiting payment to Authorzie.net", true, false); ExceptionlessClient.Default.SubmitLog(typeof(OrderController).FullName, result.Error.UserHelp, "Error"); return(Ok(processingResult)); } AuthNetResponse AuthNetData = new AuthNetResponse(); AuthNetData = result.Data; if (!AuthNetData.Approved) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Your payment to Authorized.net failed for the following reason:" + AuthNetData.Message, "Your payment to Authorized.net failed for the following reason:" + AuthNetData.Message, true, false); return(Ok(processingResult)); } //not approved else //Is Approved { foreach (var order in Orders) { var sqlQuery1 = "INSERT INTO Orders (grade,booktype,teacher,perstext1,studentfname,studentlname,emailaddress,schcode,itemamount,itemqty,schinvoicenumber,orderid,orddate,paytype,itemtotal,schname,parentpayment,yr,icon1,icon2,icon3,icon4,josicon1,josicon2,josicon3,josicon4) VALUES(@grade,@booktype,@teacher,@perstext1,@studentfname,@studentlname,@emailaddress,@schcode,@itemamount,@itemqty,@schinvoicenumber,@orderid,@orddate,@paytype,@itemtotal,@schname,@parentpayment,@yr,@icon1,@icon2,@icon3,@icon4,@josicon1,@josicon2,@josicon3,@josicon4)"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@grade", order.Grade), new MySqlParameter("@booktype", order.BookType), new MySqlParameter("@teacher", order.Teacher), new MySqlParameter("@perstext1", order.PersText1), new MySqlParameter("@studentfname", order.Studentfname), new MySqlParameter("@studentlname", order.Studentlname), new MySqlParameter("@emailaddress", order.Emailaddress), new MySqlParameter("@schcode", order.Schcode), new MySqlParameter("@itemamount", order.ItemAmount), new MySqlParameter("@itemqty", order.Itemqty), new MySqlParameter("@schinvoicenumber", order.Schinvoicenumber), new MySqlParameter("@orderid", order.OrderId), new MySqlParameter("@orddate", order.Orddate), new MySqlParameter("@paytype", order.PayType), new MySqlParameter("@itemtotal", order.ItemTotal), new MySqlParameter("@schname", order.Schname), new MySqlParameter("@parentpayment", 1), new MySqlParameter("@yr", order.Yr), new MySqlParameter("@icon1", order.Icon1), new MySqlParameter("@icon2", order.Icon2), new MySqlParameter("@icon3", order.Icon3), new MySqlParameter("@icon4", order.Icon4), new MySqlParameter("@josicon1", order.Josicon1), new MySqlParameter("@josicon2", order.Josicon2), new MySqlParameter("@josicon3", order.Josicon3), new MySqlParameter("@josicon4", order.Josicon4), }; try { var sqlQueryService = new SQLQuery(); var orderResult = await sqlQueryService.ExecuteNonQueryAsync(CommandType.Text, sqlQuery1, parameters); if (!orderResult.IsSuccessful) { ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); //create the mail message MailMessage mail = new MailMessage(); //set the addresses mail.From = new MailAddress(ConfigurationManager.AppSettings["FromAddr"]); mail.To.Add("*****@*****.**"); //set the content mail.Subject = "Mysql Error:Inserting Order " + order.Schname.ToString() + "(" + order.Schcode.ToString() + ")"; mail.Body = "An error occured inserting a order record into the Mysql database server. The following data was not recorded in the order table.<br/>School Name:" + order.Schname + "<br/>Student Name:" + order.Studentfname + " " + order.Studentlname + "<br/>School Code:" + order.Schcode + "<br/>Order Id:" + model.InvoiceNumber + "<br/>Grade:" + order.Grade + "<br/>Teacher:" + order.Teacher + "<br/>Book Type:" + order.BookType + "<br/>EmailAddress:" + order.Emailaddress + "<br/>Perstext1:" + order.PersText1 + "<br/>Item Amount:" + order.ItemAmount + "<br/>Item Total:" + order.ItemTotal + "<br/>Item Qty:" + order.Itemqty + "<br/>icon1:" + order.Icon1 + "<br/>icon2:" + order.Icon2 + "<br/>icon3:" + order.Icon3 + "<br/>icon4:" + order.Icon4 + "<br/>Year:" + order.Yr + "<br/><br/>Mysql Exception Code:" + orderResult.Error.UserMessage; mail.IsBodyHtml = true; //send the message SmtpClient smtp = new System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings["SmtpServer"]); smtp.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["smtpuser"], ConfigurationManager.AppSettings["smtppassword"]); //smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis 'only works on some serves try { smtp.Send(mail); } catch (Exception ex) { //go on don't stop because email cant be sent. } } if (orderResult.Data == 0) { ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, "Failed to insert an order", "Error"); MailMessage mail = new MailMessage(); //set the addresses mail.From = new MailAddress(ConfigurationManager.AppSettings["FromAddr"]); mail.To.Add("*****@*****.**"); //set the content mail.Subject = "Mysql Error:Inserting Order " + order.Schname.ToString() + "(" + order.Schcode.ToString() + ")"; mail.Body = "An error occured inserting a order record into the Mysql database server. The following data was not recorded in the order table.<br/>School Name:" + order.Schname + "<br/>Student Name:" + order.Studentfname + " " + order.Studentlname + "<br/>Order Id:" + model.InvoiceNumber + "<br/>School Code:" + order.Schcode + "<br/>Grade:" + order.Grade + "<br/>Teacher:" + order.Teacher + "<br/>Book Type:" + order.BookType + "<br/>EmailAddress:" + order.Emailaddress + "<br/>Perstext1:" + order.PersText1 + "<br/>Item Amount:" + order.ItemAmount + "<br/>Item Total:" + order.ItemTotal + "<br/>Item Qty:" + order.Itemqty + "<br/>icon1:" + order.Icon1 + "<br/>icon2:" + order.Icon2 + "<br/>icon3:" + order.Icon3 + "<br/>icon4:" + order.Icon4 + "<br/>Year:" + order.Yr + "<br/><br/>Mysql Exception Code:" + orderResult.Error.UserMessage; mail.IsBodyHtml = true; //send the message SmtpClient smtp = new System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings["SmtpServer"]); smtp.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["smtpuser"], ConfigurationManager.AppSettings["smtppassword"]); //smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis 'only works on some serves try { smtp.Send(mail); } catch (Exception ex) { //go on don't stop because email cant be sent. } } } catch (Exception ex) { ex.ToExceptionless().Submit(); } }//endforeach //, //insert payment even if order failed try { var sqlQuery = "INSERT INTO Payment (orderid,schname,schcode,custemail,ddate,poamt,paytype,ccnum,invno,parentpay,payerfname,payerlname,addr,city,state,zip,transid,authcode) VALUES(@orderid,@schname,@schcode,@custemail,@ddate,@poamt,@paytype,@ccnum,@invno,@parentpay,@payerfname,@payerlname,@addr,@city,@state,@zip,@transid,@authcode)"; MySqlParameter[] parameters1 = new MySqlParameter[] { new MySqlParameter("@orderid", model.InvoiceNumber), new MySqlParameter("@custemail", model.EmailAddress), new MySqlParameter("@ddate", DateTime.Now), new MySqlParameter("@poamt", model.Amount), new MySqlParameter("@paytype", model.Method), new MySqlParameter("@transid", AuthNetData.TransId), new MySqlParameter("@authcode", AuthNetData.AuthCode), new MySqlParameter("@ccnum", model.Cardnum == null?"":model.Cardnum.Substring(model.Cardnum.Length - 3)), new MySqlParameter("@invno", Orders[0].Schinvoicenumber), new MySqlParameter("@schname", Orders[0].Schname), new MySqlParameter("@schcode", AuthNetData.Custid), new MySqlParameter("@parentpay", 1), new MySqlParameter("@payerfname", model.FirstName), new MySqlParameter("@payerlname", model.LastName), new MySqlParameter("@addr", model.Address), new MySqlParameter("@city", model.City), new MySqlParameter("@state", model.State.TrimEnd()), new MySqlParameter("@zip", model.Zip) }; var sqlQueryService1 = new SQLQuery(); var payResult = await sqlQueryService1.ExecuteNonQueryAsync(CommandType.Text, sqlQuery, parameters1); if (!payResult.IsSuccessful) { //fail it because we don't have the payment to create a receipt. processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Your payment was made but an error occurred creating your receipt. To obtain a receipt contact your school adviser with this tranasaction id:" + AuthNetData.TransId, "Your payment was made but an error occurred creating your receipt. To obtain a receipt contact your school adviser with this tranasaction id:" + AuthNetData.TransId, true, false); ExceptionlessClient.Default.CreateLog(typeof(OrderController).FullName, "Error inserting parent payment.", "Error").AddObject(model).AddObject(AuthNetData); return(Ok(processingResult)); } EmailReceipt(model.InvoiceNumber); } catch (Exception ex) { ex.ToExceptionless() .SetMessage("Error inserting payment.") .AddTags("Insert Payment Error") .AddObject(model) .AddObject(AuthNetData) .Submit(); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Your payment was made but an error occurred creating your receipt. To obtain a receipt contact your school adviser with this tranasaction id:" + AuthNetData.TransId, "Your payment was made but an error occurred creating your receipt. To obtain a receipt contact your school adviser with this tranasaction id:" + AuthNetData.TransId, true, false); return(Ok(processingResult)); } }// End Approved return(Ok(processingResult)); }
public async Task <IHttpActionResult> Checkout(CheckoutRequestBindingModel model) { var processingResult = new ServiceProcessingResult <int> { IsSuccessful = true }; //GetOrderCode here var currentRow = 0; var OrderID = 0; //Get New Order Code Here var sqlText = @" SELECT value FROM sys "; var sqlQuery = new SQLQuery(); var getOrderIDResult = await sqlQuery.ExecuteReaderAsync <GetOrderIDRequest>(CommandType.Text, sqlText); var orderidlist = (List <GetOrderIDRequest>)getOrderIDResult.Data; OrderID = Convert.ToInt32(orderidlist[0].value) + 1; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@value", OrderID), }; sqlText = @"UPDATE sys SET value=@value"; var updateOrderIDResult = await sqlQuery.ExecuteNonQueryAsync(CommandType.Text, sqlText, parameters); foreach (var row in model.Items) { currentRow += 1; try { var pertext = ""; if (row.Data.PersonalizedText == "" || row.Data.PersonalizedText == null) { pertext = "Not Available"; } else { pertext = row.Data.PersonalizedText; } int?icon1 = null; int?icon2 = null; int?icon3 = null; int?icon4 = null; string josicon1 = null; string josicon2 = null; string josicon3 = null; string josicon4 = null; if (row.Data.Icon1 != null) { icon1 = Convert.ToInt32(row.Data.Icon1.Ivalue); josicon1 = row.Data.Icon1.Cvalue; } if (row.Data.Icon2 != null) { icon2 = Convert.ToInt32(row.Data.Icon2.Ivalue); josicon2 = row.Data.Icon2.Cvalue; } if (row.Data.Icon3 != null) { icon3 = Convert.ToInt32(row.Data.Icon3.Ivalue); josicon3 = row.Data.Icon3.Cvalue; } if (row.Data.Icon4 != null) { icon4 = Convert.ToInt32(row.Data.Icon4.Ivalue); josicon4 = row.Data.Icon4.Cvalue; } Decimal amount = 0; Decimal total = 0; try { //switched total = Convert.ToDecimal(row.Total); amount = Convert.ToDecimal(row.Price); } catch (Exception ex) { } parameters = new MySqlParameter[] { new MySqlParameter("@grade", row.Data.Grade), new MySqlParameter("@booktype", row.Data.YearbookType), new MySqlParameter("@teacher", row.Data.Teacher), new MySqlParameter("@perstext", pertext), new MySqlParameter("@studentfname", row.Data.StudentFirstName), new MySqlParameter("@emailaddress", row.Data.Email), new MySqlParameter("@schcode", row.Data.SchCode), new MySqlParameter("@itemamount", amount), new MySqlParameter("@itemqty", row.Quantity), new MySqlParameter("@schinvoicenumber", row.Data.InvoiceNumber), new MySqlParameter("@orderid", OrderID), new MySqlParameter("@orddate", DateTime.Now), new MySqlParameter("@paytype", "CC"), new MySqlParameter("@itemtotal", total), new MySqlParameter("@studentlname", row.Data.StudentLastName), new MySqlParameter("@schname", row.Data.SchoolName), new MySqlParameter("@parentpayment", row.Data.ParentPayment), new MySqlParameter("@yr", row.Data.Year.Substring(4 - 2)), new MySqlParameter("@sname", row.Data.SchoolName), new MySqlParameter { ParameterName = "@icon1", DbType = DbType.Int32, Value = icon1 }, new MySqlParameter { ParameterName = "@icon2", DbType = DbType.Int32, Value = icon2 }, new MySqlParameter { ParameterName = "@icon3", DbType = DbType.Int32, Value = icon3 }, new MySqlParameter { ParameterName = "@icon4", DbType = DbType.Int32, Value = icon4 }, new MySqlParameter { ParameterName = "@josicon1", Value = josicon1 }, new MySqlParameter { ParameterName = "@josicon2", Value = josicon2 }, new MySqlParameter { ParameterName = "@josicon3", Value = josicon3 }, new MySqlParameter { ParameterName = "@josicon4", Value = josicon4 } }; sqlText = @" INSERT INTO TempOrders ( grade, booktype, teacher, perstext1, studentfname, emailaddress, schcode, itemamount, itemqty, schinvoicenumber, orderid, orddate, paytype, itemtotal, studentlname, schname, parentpayment, yr, sname, icon1,icon2,icon3,icon4, josicon1,josicon2,josicon3,josicon4 ) VALUES ( @grade, @booktype, @teacher, @perstext, @studentfname, @emailaddress, @schcode, @itemamount, @itemqty, @schinvoicenumber, @orderid, @orddate, @paytype, @itemtotal, @studentlname, @schname, @parentpayment, @yr, @sname, @icon1,@icon2,@icon3,@icon4, @josicon1,@josicon2,@josicon3,@josicon4 ) "; var saveOrderResult = await sqlQuery.ExecuteNonQueryAsync(CommandType.Text, sqlText, parameters); if (!saveOrderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error inserting temp order into database", "Error inserting temp order into database", false, false); ExceptionlessClient.Default.SubmitLog("Error inserting row into temp orders table.", "Fatal"); return(Ok(processingResult)); } } catch (Exception ex) { } } processingResult.Data = OrderID; return(Ok(processingResult)); }
public async Task <IHttpActionResult> InvoiceInit(string invNumber) { var processingResult = new ServiceProcessingResult <InvoiceInitBindingModel> { IsSuccessful = true }; try { var sqlQuery = @"SELECT I.schcode, I.invno, D.teacher, D.id FROM invoiceinfo I LEFT JOIN dropdowninfo D ON I.schcode=D.schcode WHERE I.invno=@InvNumber"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var sqlQueryService = new SQLQuery(); var getInvoiceTeacherLookupResult = await sqlQueryService.ExecuteReaderAsync <InvoiceTeacherLookupBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getInvoiceTeacherLookupResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting teachers", "Error getting teachers", true, false); ExceptionlessClient.Default.SubmitLog("Error getting teachers"); return(Ok(processingResult)); } sqlQuery = @"SELECT I.schcode, D.grade, D.id FROM invoiceinfo I LEFT JOIN dropdowninfo D ON I.schcode = D.schcode WHERE I.invno=@InvNumber"; parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var getInvoiceGradeLookupResult = await sqlQueryService.ExecuteReaderAsync <InvoiceGradeLookupBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getInvoiceGradeLookupResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting grades", "Error getting grades", true, false); ExceptionlessClient.Default.SubmitLog("Error getting grades"); return(Ok(processingResult)); } sqlQuery = @"SELECT id, cvalue, isortorder, caption, ivalue, csortorder FROM Lookup"; var getInvoiceIconLookupResult = await sqlQueryService.ExecuteReaderAsync <InvoiceIconLookupBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getInvoiceIconLookupResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting icons", "Error getting icons", true, false); ExceptionlessClient.Default.SubmitLog("Error getting icons"); return(Ok(processingResult)); } sqlQuery = @"SELECT schname AS schoolname FROM invoiceinfo WHERE invno=@InvNumber"; parameters = new MySqlParameter[] { new MySqlParameter("@InvNumber", invNumber) }; var getSchoolNameResult = await sqlQueryService.ExecuteReaderAsync <InvoiceSchoolNameBindingModel>(CommandType.Text, sqlQuery, parameters); if (!getSchoolNameResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error getting school name", "Error getting school name", true, false); ExceptionlessClient.Default.SubmitLog("Error getting school name"); return(Ok(processingResult)); } processingResult.IsSuccessful = true; var schoolname = (List <InvoiceSchoolNameBindingModel>)getSchoolNameResult.Data; processingResult.Data = new InvoiceInitBindingModel(); processingResult.Data.SchoolName = schoolname[0].schoolname; processingResult.Data.Teachers = (List <InvoiceTeacherLookupBindingModel>)getInvoiceTeacherLookupResult.Data; processingResult.Data.Grades = (List <InvoiceGradeLookupBindingModel>)getInvoiceGradeLookupResult.Data; processingResult.Data.Icons = (List <InvoiceIconLookupBindingModel>)getInvoiceIconLookupResult.Data; } catch (Exception ex) { ex.ToExceptionless().Submit(); } return(Ok(processingResult)); }
public async Task <IHttpActionResult> GetOrder(int orderid) { var processingResult = new ServiceProcessingResult <List <OrderBindingModel> > { IsSuccessful = true }; try { var sqlQuery = "SELECT * FROM temporders where orderid=@OrderId"; MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@OrderId", orderid) }; var sqlQueryService = new SQLQuery(); var orderResult = await sqlQueryService.ExecuteReaderAsync(CommandType.Text, sqlQuery, parameters); if (!orderResult.IsSuccessful) { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Error retrieving order.", "Error retrieving order.", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, orderResult.Error.UserMessage, "Error"); return(Ok(processingResult)); } if (orderResult.Data.Rows.Count > 0) { List <OrderBindingModel> Orders = new List <OrderBindingModel>(); foreach (DataRow row in orderResult.Data.Rows) { var aa = row["icon1"]; var b = aa.GetType(); OrderBindingModel order = new OrderBindingModel() { Id = (UInt32)row["id"], // will not be null primary key of temporders OrderId = (UInt32)row["orderid"], //if fail because null good, don't want a order with out an id. BookType = row["booktype"].ToString(), Teacher = row["teacher"].ToString(), PersText1 = row["perstext1"].ToString(), Studentfname = row["studentfname"].ToString(), Studentlname = row["studentlname"].ToString(), Emailaddress = row["emailaddress"].ToString(), Schcode = row["schcode"].ToString(), ItemAmount = row["itemamount"] == DBNull.Value ? 0 : (decimal)row["itemamount"], Itemqty = row["itemqty"] == DBNull.Value ? 0 :(UInt32)row["itemqty"], Schinvoicenumber = row["schinvoicenumber"] == DBNull.Value? 0:(UInt32)row["schinvoicenumber"], Orddate = row["orddate"] == DBNull.Value ? DateTime.Now : (DateTime)row["orddate"], ItemTotal = row["itemtotal"] == DBNull.Value ? 0 : (decimal)row["itemtotal"], Schname = row["schname"].ToString(), Yr = row["yr"].ToString(), Icon1 = row["icon1"] == DBNull.Value? 0:(UInt32)row["icon1"], Icon2 = row["icon1"] == DBNull.Value? 0:(UInt32)row["icon2"], Icon3 = row["icon1"] == DBNull.Value? 0:(UInt32)row["icon3"], Icon4 = row["icon1"] == DBNull.Value? 0:(UInt32)row["icon4"], Josicon1 = row["josicon1"].ToString(), Josicon2 = row["josicon2"].ToString(), Josicon3 = row["josicon3"].ToString(), Josicon4 = row["josicon4"].ToString() }; Orders.Add(order); } processingResult.Data = Orders; processingResult.IsSuccessful = true; } else { processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to retrieve order", "Failed to retrieve order", true, false); ExceptionlessClient.Default.SubmitLog(typeof(TempOrderController).FullName, "Order was not found.", "Error"); } } catch (Exception ex) { ex.ToExceptionless().Submit(); processingResult.IsSuccessful = false; processingResult.Error = new ProcessingError("Failed to retrieve order", "Failed to retrieve order.", true, false); } return(Ok(processingResult)); }