public bool UpdateLabel(LabelUpdateModel labelUpdateModel) { if (labelUpdateModel.LabelIcon != null) { labelUpdateModel.LabelIconUrl = UploadLabelIcon(labelUpdateModel.LabelIcon, labelUpdateModel.Id); } else { labelUpdateModel.LabelIconUrl = null; } var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("labels"); var filter = Builders <BsonDocument> .Filter.Eq("LabelId", labelUpdateModel.Id); var update = Builders <BsonDocument> .Update.Set("LabelId", labelUpdateModel.Id); foreach (PropertyInfo prop in labelUpdateModel.GetType().GetProperties()) { var value = labelUpdateModel.GetType().GetProperty(prop.Name).GetValue(labelUpdateModel, null); if ((prop.Name != "Id") && (prop.Name != "JwtToken") && (prop.Name != "LabelIcon")) { if (value != null) { update = update.Set(prop.Name, value); } } } if (collection.UpdateOne(filter, update).ModifiedCount > 0) { return(true); } return(false); }
//UPDATE USER DATA public bool UpdateArtist(ArtistUpdateModel artistUpdateModel) { if (artistUpdateModel.ProfileImage != null) { artistUpdateModel.ProfileImageUrl = UploadProfileImage(artistUpdateModel.ProfileImage, artistUpdateModel.Id); } else { artistUpdateModel.ProfileImageUrl = null; } var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("artists"); var filter = Builders <BsonDocument> .Filter.Eq("ArtistId", artistUpdateModel.Id); var update = Builders <BsonDocument> .Update.Set("ArtistId", artistUpdateModel.Id); foreach (PropertyInfo prop in artistUpdateModel.GetType().GetProperties()) { var value = artistUpdateModel.GetType().GetProperty(prop.Name).GetValue(artistUpdateModel, null); if ((prop.Name != "Id") && (prop.Name != "JwtToken") && (prop.Name != "ProfileImage")) { if (value != null) { update = update.Set(prop.Name, value); } } } if (collection.UpdateOne(filter, update).ModifiedCount > 0) { return(true); } return(false); }
//UPDATE SONG public bool UpdateSong(SongUpdateModel songUpdateModel) { if (songUpdateModel.SongFile != null) { songUpdateModel.SongFileUrl = UploadAudioFile(songUpdateModel.SongFile, songUpdateModel.SongId); } else { songUpdateModel.SongFileUrl = null; } var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("songs"); var filter = Builders <BsonDocument> .Filter.Eq("SongId", songUpdateModel.SongId); var update = Builders <BsonDocument> .Update.Set("SongId", songUpdateModel.SongId); foreach (PropertyInfo prop in songUpdateModel.GetType().GetProperties()) { var value = songUpdateModel.GetType().GetProperty(prop.Name).GetValue(songUpdateModel, null); if ((prop.Name != "SongId") && (prop.Name != "JwtToken") && (prop.Name != "SongFile") && (prop.Name != "CoverImage")) { if (value != null) { update = update.Set(prop.Name, value); } } } if (collection.UpdateOne(filter, update).ModifiedCount > 0) { return(true); } return(false); }
//UPDATE PLAYLIST public bool UpdatePlaylist(PlaylistCreateModel playlistCreateModel) { if (playlistCreateModel.PlaylistImage != null) { playlistCreateModel.PlaylistImageUrl = UploadPlaylistCoverImage(playlistCreateModel.PlaylistImage, playlistCreateModel.PlaylistId); } else { playlistCreateModel.PlaylistImageUrl = UploadPlaylistCoverImage(new DynamicPictureGenerator().GenerateNewImage(playlistCreateModel.PlaylistName[0].ToString(), 854, 854, 500), playlistCreateModel.PlaylistId); } var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("playlists"); var filter = Builders <BsonDocument> .Filter.Eq("PlaylistId", playlistCreateModel.PlaylistId); var update = Builders <BsonDocument> .Update.Set("PlaylistId", playlistCreateModel.PlaylistId); foreach (PropertyInfo prop in playlistCreateModel.GetType().GetProperties()) { var value = playlistCreateModel.GetType().GetProperty(prop.Name).GetValue(playlistCreateModel, null); if ((prop.Name != "PlaylistId") && (prop.Name != "JwtToken") && (prop.Name != "PlaylistImage")) { if (value != null) { update = update.Set(prop.Name, value); } } } if (collection.UpdateOne(filter, update).ModifiedCount > 0) { return(true); } return(false); }
//REMOVE SONG PLAYLIST public bool RemoveSongPlaylist(string userId, string playlistId, string songId) { var collectionPlaylist = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("playlists"); var playlistFilter = Builders <BsonDocument> .Filter.Eq("CreatorId", userId) & Builders <BsonDocument> .Filter.Eq("PlaylistId", playlistId); var update = Builders <BsonDocument> .Update.PullFilter("Songs", Builders <BsonDocument> .Filter.Eq("SongId", songId)); return(collectionPlaylist.UpdateOne(playlistFilter, update).ModifiedCount > 0); }
//ADD SONG PLAYLIST public bool AddSongPlaylist(string userId, string playlistId, string songId) { SongGetModel songGetModel = null; var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("songs"); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("SongId", songId); var result = collection.Find(filter).FirstOrDefault(); if (result != null) { songGetModel = new SongGetModel(); SongGetModel res = BsonSerializer.Deserialize <SongGetModel>(result); songGetModel.SongId = res.SongId; songGetModel.SongName = res.SongName; songGetModel.ArtistName = res.ArtistName; songGetModel.AlbumId = res.AlbumId; songGetModel.Genre = res.Genre; songGetModel.SongFileUrl = res.SongFileUrl; songGetModel.TimesStreamed = res.TimesStreamed; songGetModel.CoverImageUrl = res.CoverImageUrl; } else { return(false); } var collectionPlaylist = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("playlists"); var playlistFilter = Builders <BsonDocument> .Filter.Eq("CreatorId", userId) & Builders <BsonDocument> .Filter.Eq("PlaylistId", playlistId); var update = Builders <BsonDocument> .Update.AddToSet("Songs", new BsonDocument { { "SongId", songGetModel.SongId }, { "SongName", songGetModel.SongName }, { "SongFileUrl", songGetModel.SongFileUrl }, { "AlbumId", songGetModel.AlbumId }, { "ArtistName", songGetModel.ArtistName }, { "TimesStreamed", songGetModel.TimesStreamed }, { "Genre", songGetModel.Genre }, { "CoverImageUrl", songGetModel.CoverImageUrl } }); if (collectionPlaylist.UpdateOne(playlistFilter, update).ModifiedCount > 0) { return(true); } return(false); }