示例#1
0
 public ActionResult <CustomResponseModel> UpdatePlaylist([FromForm] PlaylistCreateModel playlistCreateModel, [Required] string playlistId)
 {
     playlistCreateModel.CreatorId = new PlaylistDataAccess().JwtTokenValidation(playlistCreateModel.JwtToken);
     if (playlistCreateModel.CreatorId == "")
     {
         return(Unauthorized(new CustomResponseModel()
         {
             Code = "401", Phrase = "Unauthorized", Message = "Invalid Jwt Token"
         }));
     }
     if (new PlaylistDataAccess().IsListenerOrArtist(playlistCreateModel.CreatorId))
     {
         playlistCreateModel.PlaylistId = playlistId;
         if (new PlaylistDataAccess().UpdatePlaylist(playlistCreateModel))
         {
             return(Ok(new CustomResponseModel()
             {
                 Code = "200", Phrase = "OK", Message = "Playlist Updated"
             }));
         }
     }
     else
     {
         return(Unauthorized(new CustomResponseModel()
         {
             Code = "401", Phrase = "Unauthorized", Message = "Playlist Updator Must be a Listener or Artist"
         }));
     }
     return(BadRequest(new CustomResponseModel()
     {
         Code = "400", Phrase = "BadRequest", Message = "Playlist Updation Failed"
     }));
 }
示例#2
0
        public IActionResult CreatePlaylist([FromBody] PlaylistCreateModel playlistModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            User   user   = _repoWrapper.User.FindByCondition(u => u.Id.ToString() == userId).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest("Token is incorrect"));
            }

            IQueryable <Playlist> playlists = _repoWrapper.Playlist
                                              .FindByCondition(p => p.UserId == user.Id && p.Name == playlistModel.Name);

            if (playlists.Count() != 0)
            {
                return(BadRequest("Name alredy exists"));
            }

            Playlist playlist = new Playlist()
            {
                Name        = playlistModel.Name,
                DateCreated = DateTime.Now,
                UserId      = user.Id
            };

            _repoWrapper.Playlist.Create(playlist);
            _repoWrapper.Save();

            return(Ok(playlist));
        }
        //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);
        }
 //INSERT ALBUM
 public bool CreatePlaylist(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);
     }
     try
     {
         var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("playlists");
         var document   = new BsonDocument
         {
             { "PlaylistId", playlistCreateModel.PlaylistId },
             { "PlaylistName", playlistCreateModel.PlaylistName },
             { "PlaylistImageUrl", playlistCreateModel.PlaylistImageUrl },
             { "CreatorId", playlistCreateModel.CreatorId },
             { "Songs", new BsonArray() }
         };
         collection.InsertOne(document);
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
示例#5
0
        public async Task Create(PlaylistCreateModel model, string userId)
        {
            Playlist playlist = model.To <Playlist>();

            playlist.UserId = userId;
            await this.context.Playlists.AddAsync(playlist);

            await this.context.SaveChangesAsync();
        }
        public async Task <IActionResult> Post(PlaylistCreateModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var userId = this.userManager.GetUserId(this.User);

            await this.playlistService.Create(model, userId);

            return(this.StatusCode(StatusCodes.Status201Created));
        }