Example #1
0
        public async Task <IActionResult> EditMusic(EditMusicModel model, int UserId)
        {
            string musicFileName, imageFileName;
            User   user = await db.Users.FindAsync(UserId);

            Music music = await db.Musics.FindAsync(model.Id);

            string dateTimeNow = $"{DateTime.Now.Day}.{DateTime.Now.Month}.{DateTime.Now.Year} {DateTime.Now.Hour}:{DateTime.Now.Minute}:{DateTime.Now.Second}";

            try
            {
                if (model.MusicFile != null)
                {
                    musicFileName  = $"{user.Login}_{dateTimeNow}_" + model.MusicFile.FileName;
                    music.MusicUrl = await cloudService.EditFile("", music.MusicFileName, "", musicFileName, model.MusicFile.OpenReadStream());

                    music.MusicFileName = musicFileName;
                }
                if (model.MusicImageFile != null)
                {
                    imageFileName = $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName;
                    if (music.MusicImageName != $"{options.Value.DefaultMusicImageFile}")
                    {
                        music.MusicImageUrl = await cloudService.EditFile("", music.MusicImageName, "", imageFileName, model.MusicImageFile.OpenReadStream());

                        music.MusicImageName = imageFileName;
                    }
                    else
                    {
                        music.MusicImageUrl = await cloudService.AddFile("", imageFileName, model.MusicImageFile.OpenReadStream());

                        music.MusicImageName = imageFileName;
                    }
                }
                music.MusicName    = model.MusicName;
                music.MusicGenreId = model.MusicGenreId;
                await db.SaveChangesAsync();

                return(new OkResult());
            }
            catch
            {
                return(new StatusCodeResult(500));
            }
        }
Example #2
0
        public async Task <IActionResult> EditProfile(EditProfile model, int userId)
        {
            string imageFileName;
            var    dateTimeNow = DateTime.Now;
            var    createDate  = $"{dateTimeNow.Day}.{dateTimeNow.Month}.{dateTimeNow.Year} {dateTimeNow.Hour}:{dateTimeNow.Minute}:{dateTimeNow.Second}";

            try
            {
                var user = await db.Users.FindAsync(userId);

                if (user == null)
                {
                    return(new NotFoundObjectResult(new { msg = "Пользователь не найден" }));
                }
                if (model.Avatar != null)
                {
                    imageFileName = $"{user.Login}_user_{createDate}_" + model.Avatar.FileName;
                    if (user.AvatarFile != options.Value.DefaultUserImageFile)
                    {
                        user.Avatar = await cloudService.EditFile("", user.AvatarFile, "", imageFileName, model.Avatar.OpenReadStream());

                        user.AvatarFile = imageFileName;
                    }
                    else
                    {
                        user.Avatar = await cloudService.AddFile("", imageFileName, model.Avatar.OpenReadStream());

                        user.AvatarFile = imageFileName;
                    }
                }
                user.City    = model.City;
                user.Country = model.Country;
                user.Name    = model.Name;
                user.Surname = model.Surname;
                await db.SaveChangesAsync();

                return(new OkObjectResult(new { avatar = user.Avatar }));
            }
            catch
            {
                return(new StatusCodeResult(500));
            }
        }
Example #3
0
        public async Task <IActionResult> EditPlaylist(PlaylistEditor model, int userId)
        {
            var playlist = await db.Playlists.FindAsync(model.PlaylistId);

            if (playlist == null)
            {
                return(new NotFoundObjectResult(new { msg = "Плейлист не найден" }));
            }
            if (playlist.UserId != userId)
            {
                return(new ForbidResult());
            }
            if (model.Musics == null)
            {
                model.Musics = new List <int>();
            }
            var user = await db.Users.FindAsync(userId);

            string imageFileName;
            var    dateTimeNow = DateTime.Now;
            var    createDate  = $"{dateTimeNow.Day}.{dateTimeNow.Month}.{dateTimeNow.Year} {dateTimeNow.Hour}:{dateTimeNow.Minute}:{dateTimeNow.Second}";

            try
            {
                if (model.ImageFile != null)
                {
                    imageFileName = $"{user.Login}_playlist_{createDate}_" + model.ImageFile.FileName;
                    if (playlist.PlaylistImageFile != options.Value.DefaultPlaylistImageFile)
                    {
                        playlist.PlaylistImageUrl = await cloudService.EditFile("", playlist.PlaylistImageFile, "", imageFileName, model.ImageFile.OpenReadStream());

                        playlist.PlaylistImageFile = imageFileName;
                    }
                    else
                    {
                        playlist.PlaylistImageUrl = await cloudService.AddFile("", imageFileName, model.ImageFile.OpenReadStream());

                        playlist.PlaylistImageFile = imageFileName;
                    }
                }
                playlist.PlaylistName        = model.PlaylistName;
                playlist.PlaylistDescription = model.PlaylistDescription;
                var pm = await db.PlaylistsMusics.Where(pm => pm.PlaylistId == model.PlaylistId).ToListAsync();

                var sub = model.Musics.Except(pm.Select(pm => pm.MusicId));
                if (model.Musics.Count != pm.Count || sub.Count() != 0)
                {
                    db.PlaylistsMusics.RemoveRange(pm);
                    var playlistMusics = new List <PlaylistsMusic>();
                    foreach (var m in model.Musics)
                    {
                        playlistMusics.Add(new PlaylistsMusic {
                            PlaylistId = model.PlaylistId, MusicId = m
                        });
                    }
                    await db.PlaylistsMusics.AddRangeAsync(playlistMusics);
                }
                await db.SaveChangesAsync();

                return(new OkResult());
            }
            catch
            {
                return(new StatusCodeResult(500));
            }
        }