Пример #1
0
        public async Task <IActionResult> Create(SongCreateViewModel vm)
        {
            if (!TryValidateModel(vm))
            {
                return(View(vm));
            }

            DotNetEnv.Env.Load();

            var songToDb = new Song
            {
                Title           = vm.SongTitle,
                NormalizedTitle = vm.SongTitle.ToUpper(),
                Duration        = vm.Duration,
                SongLink        = vm.Link.Replace(DotNetEnv.Env.GetString("YOUTUBE_LINK"), "")
            };

            await _songService.ChangeAlbum(vm.AlbumTitle, songToDb);

            if (songToDb.Album != null && songToDb.Album.ReleaseDate == null && vm.ReleaseDate.HasValue)
            {
                songToDb.Album.ReleaseDate = vm.ReleaseDate.Value;
            }

            if (vm.PhotoUrl != null && songToDb.Album != null)
            {
                songToDb.Album.PhotoUrl = _photoService.AddPhoto(vm.PhotoUrl);
            }

            await _songService.ChangeBand(vm.BandName, songToDb);

            await _applicationDbContext.Songs.AddAsync(songToDb);

            await _applicationDbContext.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }