public async Task <IActionResult> Editar(int id, FaixaViewModel faixaViewModel)
        {
            if (id != faixaViewModel.FaixaId)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(faixaViewModel));
            }

            faixaViewModel.Album = await _albumApiClient.GetAlbumAsync(faixaViewModel.AlbumId);

            faixaViewModel.TipoMidia = await _tipoMidiaApiClient.GetTipoMidiaAsync(faixaViewModel.TipoMidiaId);

            faixaViewModel.Genero = await _generoApiClient.GetGeneroAsync(faixaViewModel.GeneroId);

            var resposta = await _faixaApiClient.PutFaixaAsync(id, faixaViewModel);

            if (resposta.Errors != null)
            {
                ModelState.AddModelError("Erro", resposta.Errors.FirstOrDefault());
                return(View(faixaViewModel));
            }

            return(RedirectToAction(nameof(Index)));
        }
Пример #2
0
        public async Task <ActionResult <FaixaViewModel> > Update(int id, FaixaViewModel faixaViewModel)
        {
            if (id != faixaViewModel.FaixaId)
            {
                NotifyError("O id informado não é o mesmo que foi informado na query");
                return(CustomResponse(faixaViewModel));
            }

            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            var faixa = _mapper.Map <Faixa>(faixaViewModel);

            if (faixaViewModel.Album?.AlbumId > 0)
            {
                faixa.Album = await _albumRepository.ObterPorId(faixaViewModel.Album.AlbumId);
            }

            if (faixaViewModel.TipoMidia?.TipoMidiaId > 0)
            {
                faixa.TipoMidia = await _tipoMidiaRepository.ObterPorId(faixaViewModel.TipoMidia.TipoMidiaId);
            }

            if (faixaViewModel.Genero?.GeneroId > 0)
            {
                faixa.Genero = await _generoRepository.ObterPorId(faixaViewModel.Genero.GeneroId);
            }

            await _faixaService.Atualizar(faixa);

            return(CustomResponse(faixaViewModel));
        }
Пример #3
0
        public async Task <ActionResult <FaixaViewModel> > Add(FaixaViewModel faixaViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            var faixa = _mapper.Map <Faixa>(faixaViewModel);

            if (faixaViewModel.Album?.AlbumId > 0)
            {
                faixa.Album = await _albumRepository.ObterPorId(faixaViewModel.Album.AlbumId);
            }

            if (faixaViewModel.TipoMidia?.TipoMidiaId > 0)
            {
                faixa.TipoMidia = await _tipoMidiaRepository.ObterPorId(faixaViewModel.TipoMidia.TipoMidiaId);
            }

            if (faixaViewModel.Genero?.GeneroId > 0)
            {
                faixa.Genero = await _generoRepository.ObterPorId(faixaViewModel.Genero.GeneroId);
            }

            await _faixaService.Adicionar(faixa);

            return(CustomResponse(faixaViewModel));
        }
        private async Task <FaixaViewModel> PopularCombos(FaixaViewModel faixaViewModel)
        {
            faixaViewModel.Albuns = await _albumApiClient.GetAlbunsAsync();

            faixaViewModel.TiposDeMidia = await _tipoMidiaApiClient.GetTiposDeMidiaAsync();

            faixaViewModel.Generos = await _generoApiClient.GetGenerosAsync();

            return(faixaViewModel);
        }
        public async Task <CustomResponse <FaixaViewModel> > PutFaixaAsync(int id, FaixaViewModel faixaViewModel)
        {
            var faixa = JsonSerializer.Serialize(faixaViewModel, JsonSerializerOptions);

            var conteudo = new StringContent(faixa, Encoding.UTF8, "application/json");
            var resposta = await _httpClient.PutAsync($"{id}", conteudo);

            var json = await resposta.Content.ReadAsStringAsync();

            return(JsonSerializer.Deserialize <CustomResponse <FaixaViewModel> >(json, JsonSerializerOptions));
        }