diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetAllInvoicesController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetAllInvoicesController.cs new file mode 100644 index 0000000..5100820 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetAllInvoicesController.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; +using TeamDBAwesome.Models; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetAllInvoicesController : ApiController + { + public HttpResponseMessage Get(int custId) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + List invoiceList = sql.getAllInvoices(); + + string serialized = JsonConvert.SerializeObject(invoiceList); + + message.Content = new StringContent(serialized); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index d03e036..bb9768e 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -567,6 +567,100 @@ namespace TeamDBAwesome.SqlService return invList; } + public List getAllInvoices() + { + List invList = new List(); + bool open = this.OpenConnection(); + if (open == true) + { + string query = "SELECT invoice.invoiceid, invoice.customerid, invoice.invoicedate, invoice.billingaddress, invoice.billingcity, " + + "invoice.billingstate, invoice.billingcountry, invoice.billingpostalcode, invoice.total, invoice.payid, payment.payId, " + + "payment.IsDefault, applepay.ApplePayToken, googlepay.GoogleToken, googlepay.GoogleEmail, creditcard.CreditCardNumber, " + + "creditcard.ExpirationDate " + + "from invoice " + + "left join payment on invoice.payid = payment.payid " + + "left join applepay on invoice.payid = applepay.PayId " + + "left join googlepay on invoice.payid = googlepay.PayId " + + "left join creditcard on invoice.payid = creditcard.PayId "; + + MySqlCommand cmd = new MySqlCommand(query, SqlConn); + MySqlDataReader reader = cmd.ExecuteReader(); + string Correct_Token; + while (reader.Read()) + { + string appleToken = GetDBString("ApplePayToken", reader); + string googleToken = GetDBString("GoogleToken", reader); + if (String.IsNullOrEmpty(appleToken)) + { + Correct_Token = googleToken; + } + else + { + Correct_Token = appleToken; + } + + int payid = 0, IsDef = 0; + string EmptyPayId = GetDBString("payId", reader); + if (String.IsNullOrEmpty(EmptyPayId)) + { + payid = 0; + } + else + { + payid = int.Parse(EmptyPayId); + } + string EmptyDefault = GetDBString("IsDefault", reader); + if (String.IsNullOrEmpty(EmptyDefault)) + { + IsDef = 0; + } + else + { + //IsDef = int.Parse(EmptyDefault); + IsDef = 0; + } + + Payment LoadPayment = new Payment + { + PayId = payid, + is_default = IsDef, + token = Correct_Token, + email = GetDBString("GoogleEmail", reader), + cardnum = GetDBString("CreditCardNumber", reader), + expr_date = GetDBString("ExpirationDate", reader) + }; + + + + invList.Add(new Invoice + { + invoiceId = int.Parse(GetDBString("invoiceid", reader)), + customerId = int.Parse(GetDBString("customerid", reader)), + invoiceDate = GetSqlDate("invoicedate", reader), + address = GetDBString("billingaddress", reader), + city = GetDBString("billingcity", reader), + state = GetDBString("billingstate", reader), + country = GetDBString("billingcountry", reader), + post = GetDBString("billingpostalcode", reader), + total = float.Parse(GetDBString("total", reader)), + payment = LoadPayment + /*payment = new Payment + { + PayId = int.Parse(GetDBString("payId", reader)), + is_default = int.Parse(GetDBString("IsDefault", reader)), + token = Correct_Token, + email = GetDBString("GoogleEmail", reader), + cardnum = GetDBString("CreditCardNumber", reader), + expr_date = GetDBString("ExpirationDate", reader) + }*/ + }); + } + } + + + return invList; + } + /// /// adds a payment type to the database /// diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index aaaebf5..5b2972b 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -178,6 +178,7 @@ +