コード例 #1
0
        public async Task <IActionResult> AdicionarAnexo(string mensagemId)
        {
            try
            {
                var arquivos = Request.Form.Files;
                List <ArquivoChamadoDTO> arquivosDto = new List <ArquivoChamadoDTO>();

                if (arquivos.Count > 0)
                {
                    foreach (var arquivo in arquivos)
                    {
                        if (arquivo.Length > 0)
                        {
                            var ms = new MemoryStream();
                            await arquivo.CopyToAsync(ms);

                            arquivosDto.Add(new ArquivoChamadoDTO
                            {
                                MensagemId     = mensagemId,
                                Nome           = arquivo.Name,
                                ConteudoStream = ms,
                                Tamanho        = Convert.ToInt32(arquivo.Length)
                            });
                        }
                    }
                }

                if (arquivosDto.Count > 0)
                {
                    switch (_configuration["FileSettings:StorageType"])
                    {
                    case "GoogleDrive":
                        await _mensagemService.SalvarArquivosGoogleDrive(mensagemId, arquivosDto);

                        break;

                    case "Banco":
                        await _mensagemService.SalvarArquivosBanco(mensagemId, arquivosDto);

                        break;

                    case "Pasta":
                        await _mensagemService.SalvarArquivosPasta(mensagemId, arquivosDto);

                        break;
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }