Exemplo n.º 1
0
        public async Task <ResponseContract <CampanhaViewModel> > GetByIdAsync()
        {
            var response = new ResponseContract <CampanhaViewModel>();
            var model    = await _campanhaRepository.GetByIdAsync(_user.GetCampaignId());

            response.SetContent(_mapper.Map <CampanhaViewModel>(model));
            response.SetValid();
            return(response);
        }
Exemplo n.º 2
0
        public async Task <ResponseContract <IEnumerable <ProdutoCampanhaViewModel> > > GetAllProductCampaignByCampaignIdAsync()
        {
            var response = new ResponseContract <IEnumerable <ProdutoCampanhaViewModel> >();
            var model    = await _produtoCampanhaRepository.GetAllByCampaignIdAsync(_user.GetCampaignId(), _user.GetWallet());


            response.SetContent(_mapper.Map <IEnumerable <ProdutoCampanhaViewModel> >(model));
            response.SetValid();

            return(response);
        }
Exemplo n.º 3
0
        public async Task <ResponseContract <ResgateViewModel> > MakeRedemptionAsync(ResgateViewModel request)
        {
            var response = new ResponseContract <ResgateViewModel>();

            response.SetContent(request);

            try
            {
                var product = await _produtoCampanhaRepository.FindByAsync(request.ProdutoCampanhaId, request.CampanhaProdutoId, request.ProdutoId, _user.GetCampaignId(), _user.GetWallet());

                if (product == null || product.CampanhaProduto == null)
                {
                    response.AddError(Resources.ProductInvalid);
                    return(response);
                }

                if (product.CampanhaProduto.Campanha == null || product.CampanhaProduto.Campanha.DesabilitaResgate.GetValueOrDefault())
                {
                    response.AddError(Resources.CampaignInvalid);
                    return(response);
                }
                if (await _usuarioPremioRepository.HasPrizeAsync(_user.GetUserId()))
                {
                    response.AddError(Resources.UserAlreadyRedemption);
                    return(response);
                }

                _usuarioPremioRepository.BeginTransaction();

                var usuarioPremio = new UsuarioPremio(_user.GetUserId(), request.CampanhaProdutoId,
                                                      Enum.UsuarioPremioStatus.AGUARDANDO_PROCESSAMENTO.GetHashCode(), DateTime.Now);
                usuarioPremio = await _usuarioPremioRepository.InsertAsync(usuarioPremio);

                _usuarioPremioRepository.Commit();
                response.SetValid();

                _logger.LogWarning($"[UsuarioId: {_user.GetUserId()}] [CPF: {_user.GetUserDocument()}] realizou o resgate - [CampanhaProduto: {request.CampanhaProdutoId}] [Produto: {request.ProdutoId}] .");

                await _authService.RefreshClaims();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);

                _usuarioPremioRepository.Rollback();
                response.AddError(Resources.ErrorOnMakeWish);
            }

            return(response);
        }
Exemplo n.º 4
0
        public async Task <ResponseContract <UsuarioStatusFaseViewModel> > GetUserStatusFaseAsync()
        {
            var response = new ResponseContract <UsuarioStatusFaseViewModel>(true, new UsuarioStatusFaseViewModel());

            try
            {
                var vm = new UsuarioStatusFaseViewModel();

                var campanhaFase = await _campanhaFaseRepository.GetCurrentAsync(_user.GetCampaignId());

                if (campanhaFase == null)
                {
                    campanhaFase = await _campanhaFaseRepository.GetLastFaseAsync(_user.GetCampaignId());
                }

                //vm.CampanhaFase = _mapper.Map<CampanhaFaseViewModel>(campanhaFase);

                var model = await _usuarioStatusFaseRepository.GetByUserIdAndCampaignAndCampaignFaseActiveAsync(_user.GetUserId(), _user.GetCampaignId(), campanhaFase.CampanhaFaseId);

                if (model != null)
                {
                    vm            = _mapper.Map <UsuarioStatusFaseViewModel>(model);
                    vm.PossuiFase = true;
                }
                else
                {
                    var vmComplemento = await _usuarioComplementoRepository.GetByUserIdAndTypeComplementAndNameAsync(_user.GetUserId(), TipoComplemento.Meta, campanhaFase.GetMetaName());

                    if (vmComplemento != null)
                    {
                        var meta = _mapper.Map <UsuarioComplementoViewModel>(vmComplemento);

                        if (meta != null)
                        {
                            vm.Meta = Convert.ToDecimal(meta.Valor);
                        }
                    }
                }

                response.SetContent(vm);
                response.SetValid();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
            }

            return(response);
        }
Exemplo n.º 5
0
        public async Task <ResponseContract <ProdutoCampanhaViewModel> > GetProductCampaignByCampaignIdAsync(int id)
        {
            var response = new ResponseContract <ProdutoCampanhaViewModel>();
            var model    = await _produtoCampanhaRepository.GetByCampaignIdAsync(id);

            if (model == null)
            {
                return(response);
            }

            response.SetContent(_mapper.Map <ProdutoCampanhaViewModel>(model));
            response.SetValid();

            return(response);
        }
Exemplo n.º 6
0
        public async Task <ResponseContract <UsuarioViewModel> > RegisterUpdateAsync(UsuarioViewModel viewModel)
        {
            var response = new ResponseContract <UsuarioViewModel>();

            try
            {
                viewModel.RemoveFormatacao();

                var model = await _usuarioRepository.FindAsync(_user.GetUserId());

                model.SetRegisterUpdate(_mapper.Map <Usuario>(viewModel));

                var valid = await _usuarioRepository.UpdateAsync(model);

                if (!valid)
                {
                    response.AddError(Resources.ErrorOnRegisterUpdate);
                    return(response);
                }

                var exist = await _enderecoAlteracaoRepository.ExistAsync(model.CampanhaId, model.UsuarioId);

                if (!exist)
                {
                    var enderecoAlteracao = new CampanhaUsuarioAtualizacaoCadastro
                    {
                        UsuarioId  = model.UsuarioId,
                        CampanhaId = model.CampanhaId
                    };

                    await _enderecoAlteracaoRepository.InsertAsync(enderecoAlteracao);

                    _logger.LogWarning($"[UsuarioId: {_user.GetUserDocument()}] [CPF: {_user.GetUserDocument()}] incluido na alteração de endereço pela primeira vez.");
                }

                _logger.LogWarning($"[UsuarioId: {_user.GetUserDocument()}] [CPF: {_user.GetUserDocument()}] realizou alteração no cadastro.");
                response.SetContent(_mapper.Map <UsuarioViewModel>(model));
                response.SetValid();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                response.AddError(Resources.ErrorOnRegisterUpdate);
            }

            return(response);
        }
Exemplo n.º 7
0
        public async Task <ResponseContract <ProdutoViewModel> > GetByIdAsnc(GetProductByIdRequest request)
        {
            var response = new ResponseContract <ProdutoViewModel>();

            var result = await _produtoRepository.FindAsync(request.Id);

            if (result == null)
            {
                return(response);
            }

            var vm = _mapper.Map <ProdutoViewModel>(result);

            response.SetContent(vm);
            response.SetValid();

            return(response);
        }
Exemplo n.º 8
0
        public async Task <ResponseContract <UsuarioViewModel> > GetUserAsync()
        {
            var response = new ResponseContract <UsuarioViewModel>();

            try
            {
                var model = await _usuarioRepository.FindAsync(_user.GetUserId());

                response.SetContent(_mapper.Map <UsuarioViewModel>(model));
                response.SetValid();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
            }

            return(response);
        }
Exemplo n.º 9
0
        public async Task <ResponseContract <CepTotalViewModel> > FindByZipCodeAsync(CepTotalRequest request)
        {
            var response = new ResponseContract <CepTotalViewModel>();

            try
            {
                var vm = _mapper.Map <CepTotalViewModel>(await _cepTotalRepository.FindByZipCodeAsync(request.Cep.JustNumbers()));
                if (vm == null)
                {
                    return(response);
                }
                response.SetContent(vm);
                response.SetValid();
                return(response);
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(response);
            }
        }