diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Track.cs b/TeamDBAwesome/TeamDBAwesome/Models/Track.cs index 10b9729..ce121f2 100644 --- a/TeamDBAwesome/TeamDBAwesome/Models/Track.cs +++ b/TeamDBAwesome/TeamDBAwesome/Models/Track.cs @@ -9,7 +9,7 @@ namespace TeamDBAwesome.Models { public int TrackId { get; set; } public string TrackName { get; set; } - public string AlbumTitle { get; set; } //Should this be album id to match the sql? + public string AlbumTitle { get; set; } public string MediaType { get; set; } public string Genre { get; set; } public string Composer { get; set; } diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index 81dbfb5..21635d8 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -248,6 +248,9 @@ namespace TeamDBAwesome.SqlService int nextNum = int.Parse(cmd.ExecuteScalar() + "") + 1; string insertGenre = "insert into Genre(GenreId,Name) VALUES (" + nextNum + ",\"" + name + "\")"; + cmd = new MySqlCommand(insertGenre, SqlConn); + cmd.ExecuteNonQuery(); + return nextNum; } else @@ -266,6 +269,9 @@ namespace TeamDBAwesome.SqlService int nextNum = int.Parse(cmd.ExecuteScalar() + "") + 1; string insertGenre = "insert into MediaType(MediaTypeId,Name) VALUES (" + nextNum + ",\"" + name + "\")"; + cmd = new MySqlCommand(insertGenre, SqlConn); + cmd.ExecuteNonQuery(); + return nextNum; } else diff --git a/TeamDBAwesome/TeamDBAwesome/app.js b/TeamDBAwesome/TeamDBAwesome/app.js index 380e665..e1d8edd 100644 --- a/TeamDBAwesome/TeamDBAwesome/app.js +++ b/TeamDBAwesome/TeamDBAwesome/app.js @@ -143,3 +143,22 @@ app.run(['$rootScope', '$state', '$stateParams','$http', $rootScope.$stateParams = $stateParams; $http.defaults.headers.common.Authentication = 'Basic Token'; }]); + +app.filter('formatTime', function() { + return function(milliseconds) { + var seconds = parseInt((milliseconds/1000)%60); + var minutes = parseInt((milliseconds/(100060))%60); + var hours = parseInt((milliseconds/(100060*60))%24); + var out = ""; + + minutes = (parseInt(minutes) + (60 * parseInt(hours))); + minutes = (minutes < 10) ? "0" + minutes : minutes; + seconds = (seconds < 10) ? "0" + seconds : seconds; + + out = minutes + ":" + seconds; + + + return out; + }; + +}); \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/js/adminController.js b/TeamDBAwesome/TeamDBAwesome/js/adminController.js index 5ee4c09..e09fe72 100644 --- a/TeamDBAwesome/TeamDBAwesome/js/adminController.js +++ b/TeamDBAwesome/TeamDBAwesome/js/adminController.js @@ -43,35 +43,159 @@ angular.module('routerApp').controller('adminController', function ($scope, $htt }; $scope.toCreateAlbum = function () { $scope.showMediaOptions = false; + $scope.showAlbumFields = true; + }; $scope.toCreateArtist = function () { $scope.showMediaOptions = false; + $scope.showArtistFields = true; }; $scope.toCreateGenre = function () { $scope.showMediaOptions = false; + $scope.showGenreFields = true; }; $scope.toCreateMediaType = function () { $scope.showMediaOptions = false; + $scope.showMediaTypeFields = true; + }; + + $scope.createTrack = function (newTrack) { + var sub = HolderService.getBlankTrack(); + if (newTrack.company == null) { + newTrack.company = null; + } + sub.TrackName = newTrack.trackName; + sub.artist = newTrack.artist; + sub.AlbumTitle = newTrack.albumTitle; + sub.MediaType = newTrack.mediaType; + sub.Genre = newTrack.genre; + sub.Composer = newTrack.composer; + sub.Milliseconds = newTrack.milliseconds; + sub.Bytes = newTrack.bytes; + sub.UnitPrice = newTrack.unitPrice; + console.log(sub); + + var promise = $http({ + method: "post", + url: "http://localhost:50031/api/AddTrack", + headers: { + contentType: "application/json" + }, + data: sub + }). + success(function (data, status, headers, config) { + $scope.messages = 'You created a track!'; + console.log(response); + alert($scope.messages); + }). + error(function (error, status, headers, config) { + $scope.messages = 'There was a network error. Try again later.'; + alert($scope.messages); + }); + } + + $scope.createArtist = function (newArtist) { + var sub = { + ArtistID: null, + Name: null + } + sub.Name = newArtist.artistName; + console.log(sub); + + var promise = $http({ + method: "post", + url: "http://localhost:50031/api/AddArtist", + headers: { + contentType: "application/json" + }, + data: sub + }). + success(function (data, status, headers, config) { + $scope.messages = 'You created an artist!'; + console.log(response); + alert($scope.messages); + }). + error(function (error, status, headers, config) { + $scope.messages = 'There was a network error. Try again later.'; + alert($scope.messages); + }); + } + + $scope.createAlbum = function (newAlbum) { + var sub = { + AlbumID: null, + Title: null, + Artist: null + } + sub.Title = newAlbum.albumName; + sub.Artist = newAlbum.artistName; + console.log(sub); + + var promise = $http({ + method: "post", + url: "http://localhost:50031/api/AddAlbum", + headers: { + contentType: "application/json" + }, + data: sub + }). + success(function (data, status, headers, config) { + $scope.messages = 'You created an album!'; + console.log(response); + alert($scope.messages); + }). + error(function (error, status, headers, config) { + $scope.messages = 'There was a network error. Try again later.'; + alert($scope.messages); + console.log(error); + console.log(error.ExceptionMessage); + console.log(error.ExeceptionType); + console.log(error.StackTrace); + }); + + } + + $scope.createGenre = function (genreName) { + $http.get("http://localhost:50031/api/AddGenre?GenreName=" + genreName) + .success(function (response) { + $scope.messages = 'You created a genre!'; + console.log(response); + alert($scope.messages); + }) + + } + + $scope.createMediaType = function (mediaTypeName) { + $http.get("http://localhost:50031/api/AddMediaType?TypeName=" + mediaTypeName) + .success(function (response) { + $scope.messages = 'You created a media type!'; + console.log(response); + alert($scope.messages); + }) + + } + + //End New Media //CustomerDemographics $scope.custInfoGridOptions = { enableFiltering: true, - columnDefs: [ - {field: 'Fname', displayName: 'First Name'}, - {field: 'Lname', displayName: 'Last Name'}, - {field: 'Address'}, - {field: 'City'}, - {field: 'State'}, - {field: 'Post'}, - {field: 'Country'}, - {field: 'Phone'}, - {field: 'Fax'}, - {field: 'Email'}, - {field: 'Company'} - ] - } + columnDefs: [ + {field: 'Fname', displayName: 'First Name'}, + {field: 'Lname', displayName: 'Last Name'}, + {field: 'Address'}, + {field: 'City'}, + {field: 'State'}, + {field: 'Post'}, + {field: 'Country'}, + {field: 'Phone'}, + {field: 'Fax'}, + {field: 'Email'}, + {field: 'Company'} + ] + } //End Customer Demographics @@ -89,7 +213,7 @@ angular.module('routerApp').controller('adminController', function ($scope, $htt }) } $scope.getPlaylists(); - $state.go($state.current, {}, { reload: true }); + $state.reload(); } $scope.toEdit = function (playlistID) { @@ -112,7 +236,7 @@ angular.module('routerApp').controller('adminController', function ($scope, $htt $scope.dropPlaylist(playlistID); } $scope.getPlaylists(); - $state.go($state.current, {}, { reload: true }); + $state.reload(); } $scope.dropPlaylist = function (playlistID) { diff --git a/TeamDBAwesome/TeamDBAwesome/pages/admin-playlist-manager.html b/TeamDBAwesome/TeamDBAwesome/pages/admin-playlist-manager.html index bcb4ec4..bd7da70 100644 --- a/TeamDBAwesome/TeamDBAwesome/pages/admin-playlist-manager.html +++ b/TeamDBAwesome/TeamDBAwesome/pages/admin-playlist-manager.html @@ -3,6 +3,7 @@
+
Create New Playlist @@ -20,9 +21,11 @@
+
Back Add a track +
@@ -54,7 +57,7 @@

- +
@@ -68,7 +71,7 @@ - + diff --git a/TeamDBAwesome/TeamDBAwesome/pages/new-media.html b/TeamDBAwesome/TeamDBAwesome/pages/new-media.html index 15f4d1d..55cfa73 100644 --- a/TeamDBAwesome/TeamDBAwesome/pages/new-media.html +++ b/TeamDBAwesome/TeamDBAwesome/pages/new-media.html @@ -16,6 +16,11 @@ Track name is required +
+ + + Artist is required +
@@ -50,11 +55,69 @@ Unit Price is required
+
+ +
+ + + Album name is required +
+
+ + + Artist name is required +
+ +
+ +
+ + + +
+ + + Artist name is required +
+ +
+ +
+ + + +
+ + + Genre name is required +
+ + + +
+ +
+ + + +
+ + + Media Type name is required +
+ + + +
+ +
+ +
Track Id{{ track.TrackId }} {{ track.TrackName }} {{ track.artist }}{{ track.Milliseconds }}{{ track.Milliseconds | formatTime }} {{ track.UnitPrice | currency }} Delete