예제 #1
0
        /// <summary>
        /// Processa arquivo cvs para o banco de dados.
        /// </summary>
        /// <returns></returns>
        public async Task <bool> Process()
        {
            if (!CheckDirectories())
            {
                return(false);
            }

            var files = GetFiles(_pathFilesSettings.ToProccess).ToList();

            var campanhaAtual = await _campanhaRepository.GetCurrentAsync(_campaignSettings.Name);

            if (campanhaAtual == null)
            {
                _logger.LogInformation($"Your wish campaign not current.");
                return(false);
            }


            foreach (var file in files)
            {
                var swatch = new Stopwatch();

                swatch.Start();

                _logger.LogInformation($"Processing to file: {file.Nome} init.");

                var valid = await ProcessFile(file, campanhaAtual);

                if (!valid)
                {
                    Directory.Move(file.Nome, Path.Combine(_pathFilesSettings.Reject, file.NomeProcessado));
                }
                else
                {
                    Directory.Move(file.Nome, Path.Combine(_pathFilesSettings.Proccessed, file.NomeProcessado));
                }

                _logger.LogInformation($"Processing to file: {file.NomeProcessado} finished.");

                swatch.Stop();

                _logger.LogInformation($"Process file: {file.NomeProcessado} end at: {swatch.Elapsed:hh\\:mm\\:ss}.");
            }

            // File 500
            //await _bonusService.BonusAccess(campanhaFaseAtual.CampanhaId);

            if (!files.Any())
            {
                _logger.LogInformation($"file(s) not found.");
                return(true);
            }

            //await _bonusService.BonusUserRegisterUpdate(campaignSeuDesejo.CampanhaId);

            return(true);
        }
예제 #2
0
        public async Task <ResponseContract <LoginViewModel> > LoginAsync(LoginViewModel viewModel)
        {
            var response = new ResponseContract <LoginViewModel>();

            try
            {
                var campanha = await _campanhaRepository.GetCurrentAsync(_campaignSettings.Name);

                if (campanha == null)
                {
                    response.AddError(Resources.CampaignInvalid);
                    return(response);
                }

                var usuario = await _usuarioRepository.GetByBirthDateAndDocumentAndCampaign(campanha.CampanhaId, viewModel.Cpf.RemoveFormatacao(), viewModel.DataNascimento);

                if (usuario == null)
                {
                    response.AddError(Resources.LoginInvalid);
                    return(response);
                }

                await GenerateClaimsAsync(usuario, campanha);

                _logger.LogWarning($"[UsuarioId: {usuario.UsuarioId}] [CPF: {usuario.Documento}] realizou login com sucesso.");

                await SetAccessControl(usuario);

                response.SetValid();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                response.AddError(Resources.ErrorOnLogin);
            }

            return(response);
        }