示例#1
0
        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);
        }
示例#2
0
        //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);
        }
示例#3
0
        //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);
        }