Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
gen invoice is in this, but isn't done, others are (or should be)
  • Loading branch information
Jeremy Mill committed Dec 7, 2015
1 parent 6b4334d commit 5146755
Show file tree
Hide file tree
Showing 6 changed files with 258 additions and 0 deletions.
25 changes: 25 additions & 0 deletions TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackOrderController.cs
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using TeamDBAwesome.SqlService;

namespace TeamDBAwesome.Controllers
{
public class AddTrackOrderController : ApiController
{
public HttpResponseMessage Get(int trackId, int orderId)
{
MySqlService dbService = new MySqlService();

int result = dbService.AddTrackOrer(orderId, trackId);

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent(result.ToString());
return response;

}
}
}
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using TeamDBAwesome.Models;
using TeamDBAwesome.SqlService;

namespace TeamDBAwesome.Controllers
{
public class GenerateInvoiceController : ApiController
{
public HttpResponseMessage Get(int custId, int payId, int orderId)
{
HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);

MySqlService sql = new MySqlService();

int nextInvoice = sql.createInvoice(custId, payId, orderId);

message.Content = new StringContent(nextInvoice.ToString());

return message;
}
}
}
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using TeamDBAwesome.Models;
using TeamDBAwesome.SqlService;
using Newtonsoft.Json;

namespace TeamDBAwesome.Controllers
{
public class GetCustomerOrdersController : ApiController
{
public HttpResponseMessage Get(int customerId)
{
MySqlService dbService = new MySqlService();

List<int> orderList = dbService.customerOrders(customerId);
string serialzed = JsonConvert.SerializeObject(orderList);

HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);
message.Content = new StringContent(serialzed);

return message;

}
}
}
@@ -0,0 +1,29 @@
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 GetOrderTracksController : ApiController
{
public HttpResponseMessage Get(int orderId)
{
MySqlService dbService = new MySqlService();

List<Track> trackList = dbService.getOrderTracks(orderId);
string serialzed = JsonConvert.SerializeObject(trackList);

HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);
message.Content = new StringContent(serialzed);

return message;

}
}
}
144 changes: 144 additions & 0 deletions TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs
Expand Up @@ -232,6 +232,70 @@ namespace TeamDBAwesome.SqlService
}
}

public int createInvoice(int custId, int payId, int orderId)
{
bool open = this.OpenConnection();
if(open == true)
{
//first get all of the customer info
string personQuery = "select person.Address as billAdr, " +
"person.City as billCity, " +
"person.State as billState, " +
"person.Country as billCountry, " +
"person.PostalCode as billPost " +
"from person " +
"left join customer on customer.PersonID = person.PersonId " +
"where customer.CustomerId = " + custId;

MySqlCommand cmd = new MySqlCommand(personQuery, SqlConn);

MySqlDataReader reader = cmd.ExecuteReader();

string Address = "", City = "", State="", Country="", PostalCode = "";

while (reader.Read())
{
Address = GetDBString("billAdr", reader);
City = GetDBString("billCity", reader);
State = GetDBString("billState", reader);
Country = GetDBString("billCountry", reader);
PostalCode = GetDBString("billPost", reader);
}
reader.Close();
//get the order total
float total = 0;
string costQuery = "Select UnitPrice from track left join ordertracks on track.trackid = ordertracks.trackid where orderId = " + orderId;
cmd = new MySqlCommand(costQuery, SqlConn);
reader = cmd.ExecuteReader();
while(reader.Read())
{
total = total + float.Parse(GetDBString("UnitPrice", reader));
}
reader.Close();
//get the next number for invoiceId
string nextInvoiceQuery = "Select invoiceid from invoice order by invoiceid desc limit 1";
cmd = new MySqlCommand(nextInvoiceQuery, SqlConn);
int nextInvoice = int.Parse(cmd.ExecuteScalar() + "") + 1;

//get current date time
DateTime dateValue = DateTime.Now;
string NowTime = dateValue.ToString("yyyy-MM-dd HH:mm:ss");

//now do the insert
string insert = "Insert into invoice (invoiceid, customerid, invoicedate, billingaddress, billingcity, billingstate, billingcountry, billingpostalcode, total, payid) " +
"VALUES " +
"(" + nextInvoice + "," + custId + "," + NowTime + "," + Address + "," + City + "," + State + "," + Country + "," + PostalCode + "," + total + "," + payId + ")";
cmd = new MySqlCommand(insert, SqlConn);
cmd.ExecuteNonQuery();

return nextInvoice;
}
else
{
return 0;
}
}

/// <summary>
/// adds a payment type to the database
/// </summary>
Expand Down Expand Up @@ -282,6 +346,86 @@ namespace TeamDBAwesome.SqlService
return 0;
}

public int AddTrackOrer(int OrderId, int TrackId)
{
bool open = this.OpenConnection();
if (open == true)
{
string insert = "INSERT INTO ordertracks (OrderId,TrackId) VALUES (" + OrderId + "," + TrackId + ")";
MySqlCommand command = new MySqlCommand(insert, SqlConn);
command.ExecuteNonQuery();
return 0;
}
else
{
return 1;
}
}

public List<Track> getOrderTracks(int orderId)
{
List <Track> trackList = new List<Track>();
bool open = this.OpenConnection();
if(open == true)
{
string query = "select track.TrackId as TrackID, track.Name as trackname,track.Composer as trackcomposer, " +
"track.Milliseconds,track.Bytes, track.UnitPrice, Album.Title as albumtitle,MediaType.Name as mediatype, artist.name as artist, " +
"Genre.Name as genre " +
"from track " +
"left join ordertracks on track.TrackId = ordertracks.trackid " +
"left join Album on track.AlbumId = Album.AlbumId " +
"left join mediatype on track.MediaTypeId=mediatype.MediaTypeId " +
"left join genre on track.GenreId = genre.GenreId " +
"left join artist on album.artistid = artist.artistid " +
"where ordertracks.orderid = " + orderId;

MySqlCommand cmd = new MySqlCommand(query, SqlConn);

MySqlDataReader reader = cmd.ExecuteReader();

Track track;

while (reader.Read())
{
track = new Track();

track.TrackId = int.Parse(GetDBString("TrackId", reader));
track.TrackName = GetDBString("trackname", reader);
track.Composer = GetDBString("trackcomposer", reader);
track.Milliseconds = int.Parse(GetDBString("Milliseconds", reader));
track.Bytes = int.Parse(GetDBString("Bytes", reader));
track.UnitPrice = float.Parse(GetDBString("UnitPrice", reader));
track.AlbumTitle = GetDBString("albumtitle", reader);
track.MediaType = GetDBString("mediatype", reader);
track.Genre = GetDBString("genre", reader);
track.artist = GetDBString("artist", reader);

trackList.Add(track);
}
}

return trackList;
}

public List<int> customerOrders(int custId)
{
List<int> id_list = new List<int>();
bool open = this.OpenConnection();
if(open == true)
{
string query = "SELECT OrderId from orders where CustomerId = " + custId;
MySqlCommand cmd = new MySqlCommand(query, SqlConn);

MySqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
id_list.Add(int.Parse(GetDBString("OrderId", reader)));
}
}
CloseConnection();
return id_list;
}

/// <summary>
/// Update a Customer Object
/// </summary>
Expand Down
4 changes: 4 additions & 0 deletions TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj
Expand Up @@ -167,13 +167,17 @@
<Compile Include="Controllers\AddPaymentController.cs" />
<Compile Include="Controllers\AddPlaylistController.cs" />
<Compile Include="Controllers\AddTrackCustomPlaylistController.cs" />
<Compile Include="Controllers\AddTrackOrderController.cs" />
<Compile Include="Controllers\AddTrackPlaylistController.cs" />
<Compile Include="Controllers\CreateOrderController.cs" />
<Compile Include="Controllers\DropCustomPlaylistController.cs" />
<Compile Include="Controllers\DropPlaylistController.cs" />
<Compile Include="Controllers\GenerateInvoiceController.cs" />
<Compile Include="Controllers\GetCustomerController.cs" />
<Compile Include="Controllers\GetCustomerOrdersController.cs" />
<Compile Include="Controllers\GetCustomPlaylistController.cs" />
<Compile Include="Controllers\GetCustomPlaylistsController.cs" />
<Compile Include="Controllers\GetOrderTracksController.cs" />
<Compile Include="Controllers\GetPaymentController.cs" />
<Compile Include="Controllers\GetPlaylistController.cs" />
<Compile Include="Controllers\GetPlaylistListController.cs" />
Expand Down

0 comments on commit 5146755

Please sign in to comment.