Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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));
            }
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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));
            }
        }
Exemple #10
0
        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));
        }
Exemple #11
0
        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();
            }
        }
Exemple #12
0
        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));
            //----------------------------------------------------------------------
        }
Exemple #13
0
        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();
            }
        }
Exemple #14
0
        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));
        }
Exemple #15
0
        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));
        }
Exemple #16
0
        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));
        }
Exemple #17
0
        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));
        }