Пример #1
0
        public async Task <IActionResult> Criar(CriarAnuncioView anuncio, IFormFile arquivo)
        {
            if (ModelState.IsValid)
            {
                string                    nomeArquivo         = "";
                string                    nomeArquivoCompleto = "";
                CriarAnuncioModel         entradaAPI          = _mapper.Map <CriarAnuncioModel>(anuncio);
                CriarAnuncioModelResponse saidaAPI            = await _advApiClient.Criar(entradaAPI).ConfigureAwait(false);

                string id = saidaAPI.Id;

                if (arquivo != null)
                {
                    nomeArquivo         = (!string.IsNullOrEmpty(arquivo.FileName)) ? Path.GetFileName(arquivo.FileName) : id;
                    nomeArquivoCompleto = $"{id}/{nomeArquivo}";

                    try
                    {
                        using (Stream rs = arquivo.OpenReadStream())
                        {
                            bool enviou = await _upFile.EnviarArquivo(nomeArquivoCompleto, rs).ConfigureAwait(false);

                            if (!enviou)
                            {
                                throw new Exception("Nao foi possivel enviar o arquivo.");
                            }
                        }

                        var confirmar = new ConfirmarAnuncioModelRequest {
                            Id     = id,
                            Status = StatusAnuncio.Ativo
                        };
                        bool confirmarAPI = await _advApiClient.Confirmar(confirmar).ConfigureAwait(false);

                        if (!confirmarAPI)
                        {
                            throw new Exception($"Nao pode realizar confirmacao do anuncio ID: {id}");
                        }

                        return(RedirectToAction("Index", "Home"));
                    }
                    catch (Exception ex)
                    {
                        var confirmar = new ConfirmarAnuncioModelRequest
                        {
                            Id     = id,
                            Status = StatusAnuncio.Pendente
                        };
                        bool confirmarAPI = await _advApiClient.Confirmar(confirmar).ConfigureAwait(false);
                    }
                }
            }

            return(View(anuncio));
        }
Пример #2
0
 public IActionResult Criar(CriarAnuncioView anuncio)
 {
     return(View(anuncio));
 }