예제 #1
0
        /// <summary>
        /// Realiza o upload de um arquivo
        /// </summary>
        private async Task <string> RealizarUploadAnexo(DateTime dataLancamento, LancamentoAnexoEntrada cadastroEntrada)
        {
            if (_apiGoogleDriveProxy.Invalido)
            {
                this.AdicionarNotificacoes(_apiGoogleDriveProxy.Notificacoes);
                return(null);
            }

            this.NotificarSeNuloOuVazio(_idPastaGoogleDrive, "O ID da pasta no Google Drive não foi informado.");

            if (this.Invalido)
            {
                return(null);
            }

            var periodo = await _periodoRepositorio.ObterPorData(dataLancamento, cadastroEntrada.IdUsuario);

            Google.Apis.Drive.v3.Data.File pastaPeriodo;

            if (periodo != null)
            {
                // Caso exista um período, é criado uma pasta com o nome do período
                pastaPeriodo = await _apiGoogleDriveProxy.CriarPasta(periodo.Nome, _idPastaGoogleDrive);
            }
            else
            {
                // Caso não exista um período, é criado uma pasta com a partir do mês/ano do lançamento
                pastaPeriodo = await _apiGoogleDriveProxy.CriarPasta(dataLancamento.ToString("MM/yyyy"), _idPastaGoogleDrive);
            }

            // Verifica se um arquivo com o mesmo nome já existe na pasta do mês do lançamento
            var anexoJaExistente = await _apiGoogleDriveProxy.ProcurarPorNome(ApiGoogleDriveProxy.TipoGoogleDriveFile.Arquivo, cadastroEntrada.NomeArquivo, pastaPeriodo.Id);

            this.NotificarSeNaoNulo(anexoJaExistente, LancamentoAnexoMensagem.Nome_Arquivo_Ja_Existe_Google_Drive);

            if (this.Invalido)
            {
                return(null);
            }

            // Realiza o upload do arquivo
            return(await _apiGoogleDriveProxy.RealizarUpload(cadastroEntrada.NomeArquivo, cadastroEntrada.MimeTypeArquivo, cadastroEntrada.ConteudoArquivo, cadastroEntrada.Descricao, pastaPeriodo.Id));
        }
예제 #2
0
        public async Task <ISaida> ObterPeriodoPorData(DateTime data, int idUsuario)
        {
            this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var periodo = await _periodoRepositorio.ObterPorData(data, idUsuario);

            if (periodo == null)
            {
                return(new Saida(true, new[] { PeriodoMensagem.Data_Periodo_Nao_Existe }, null));
            }

            return(this.Invalido
                ? new Saida(false, this.Mensagens, null)
                : new Saida(true, new[] { PeriodoMensagem.Periodo_Encontrado_Com_Sucesso }, new PeriodoSaida(periodo)));
        }