public static void RegisterRoutes(RouteCollection routes, IDependencyInjectionContainer container)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // TODO: Make custom FavIcons per tenant
            routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

            routes.MapRoute(
                name: "Error - 404",
                url: "not-found",
                defaults: new { controller = "System", action = "Status404" }
                );

            routes.MapRoute(
                name: "Error - 500",
                url: "server-error",
                defaults: new { controller = "System", action = "Status500" }
                );

            routes.Add(container.Resolve<LowercaseRedirectRoute>());
            routes.Add(container.Resolve<TrailingSlashRedirectRoute>());
            routes.Add(container.Resolve<DefaultLocaleRedirectRoute>());
            routes.Add("Page", container.Resolve<PageRoute>());
            routes.Add("Product", container.Resolve<ProductRoute>());

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
示例#2
0
        public static void RegisterRoutes(RouteCollection routes, IDependencyInjectionContainer container)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // TODO: Make custom FavIcons per tenant
            routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

            routes.MapRoute(
                name: "Error - 404",
                url: "not-found",
                defaults: new { controller = "System", action = "Status404" }
                );

            routes.MapRoute(
                name: "Error - 500",
                url: "server-error",
                defaults: new { controller = "System", action = "Status500" }
                );


            routes.Add(container.Resolve <LowercaseRedirectRoute>());
            routes.Add(container.Resolve <TrailingSlashRedirectRoute>());
            routes.Add(container.Resolve <DefaultLocaleRedirectRoute>());
            routes.Add("Page", container.Resolve <PageRoute>());
            routes.Add("Product", container.Resolve <ProductRoute>());


            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
        }
示例#3
0
        public IHttpActionResult ObterTodos(String email, String ip, String hash, String tipo = "0")
        {
            var hashGerado = DomainUtil.GerarHashMD5(String.Concat(email, email, ip, ip));

            if (tipo == "0")
            {
                if (hashGerado != hash)
                {
                    var atividadeAtual = new Atividade()
                    {
                        Usuario = null, IP = ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.PossivelTentativaDeHack), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + email + " tentou acessar a consulta de serviço com a Hash errada."
                    };

                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);

                    return(Json(new { erro = "S", mensagem = "Hash incorreto, esta tentativa de consulta foi logada e enviada ao Administrador." }));
                }
            }

            List <ServicoVO> servicosVO = null;

            servicosVO = container.Resolve <IServicoRepository>().ObterTodosAtivos();

            if (servicosVO != null)
            {
                var atividadeAtual = new Atividade()
                {
                    Usuario = null, IP = ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.ConsultaServico), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + email + " solicitou consulta de serviços."
                };

                container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
            }

            return(Json(new { erro = "N", itens = servicosVO != null ? servicosVO : new List <ServicoVO>() }));
        }
        /// <summary>
        /// Executes the program with the specified path parameter.
        /// </summary>
        /// <param name="pathParam">The path parameter.</param>
        private static void Execute(string pathParam)
        {
            string specifiedPath;

            if (pathParam == null)
            {
                Console.WriteLine(Consts.AssumingCurrentPathMessage);
                specifiedPath = ".";
            }
            else
            {
                string[] pathParamSplit = pathParam.Split(Consts.ParamValueSeparator);

                if (pathParam == null || pathParamSplit.Length != 2)
                {
                    Console.WriteLine(Consts.UsageMessage);
                    return;
                }

                if (!string.Equals(pathParamSplit[0], Consts.PathParamName, StringComparison.InvariantCultureIgnoreCase))
                {
                    Console.WriteLine(Consts.UsageMessage);
                    return;
                }

                specifiedPath = pathParamSplit[1];
            }

            ConsoleBootrapper consoleBootstrapper = new ConsoleBootrapper();

            consoleBootstrapper.Bootstrap();

            IDependencyInjectionContainer dependencyInjectionContainer = consoleBootstrapper.DependencyInjectionContainer;

            PathResolver pathResolver = new PathResolver();
            string       resolvedPath = pathResolver.ResolvePath(specifiedPath);

            IFileDiscoveryService           filePathDiscoveryService = dependencyInjectionContainer.Resolve <IFileDiscoveryService>();
            IEnumerable <FileDiscoveryInfo> scriptFiles = filePathDiscoveryService.DiscoverFiles(resolvedPath);

            IScriptingService scriptingService = dependencyInjectionContainer.Resolve <IScriptingService>();

            foreach (var scriptFile in scriptFiles)
            {
                ConsoleKeyInfo consoleKeyInfo = new ConsoleKeyInfo();

                while (!Program.ValidKey(consoleKeyInfo))
                {
                    Console.Write($"Run script '{ scriptFile.FileName }'? (y/n) ");
                    consoleKeyInfo = Console.ReadKey();
                    Console.WriteLine();
                }

                if (consoleKeyInfo.Key == ConsoleKey.Y)
                {
                    scriptingService.ExecuteScriptAsync(scriptFile).Wait();
                }
            }
        }
示例#5
0
 protected void Application_BeginRequest(Object sender, EventArgs e)
 {
     container.Resolve <TenantInitializer>();
     container.Resolve <LocaleInitializer>();
     // TODO: 302 redirect if the preferred culture from the
     // HttpContext.Current.Request.UserLanguages exists for the given page and
     // the UrlReferrer is not the current site.
 }
示例#6
0
        public void Salvar(Credito credito)
        {
            var uow        = container.Resolve <IUnitOfWork>();
            var repository = container.Resolve <ICreditoRepository>();

            uow.BeginTransaction();
            repository.Save(credito);
            uow.Commit();
        }
示例#7
0
        public void Salvar(PessoaFisica2 pessoa)
        {
            var uow        = container.Resolve <IUnitOfWork>();
            var repository = container.Resolve <IPessoaFisica2Repository>();

            uow.BeginTransaction();
            repository.Save(pessoa);
            uow.Commit();
        }
        public void Salvar(Assinatura assinatura)
        {
            var uow        = container.Resolve <IUnitOfWork>();
            var repository = container.Resolve <IAssinaturaRepository>();

            uow.BeginTransaction();
            repository.Save(assinatura);
            uow.Commit();
        }
        public void Salvar(LogConsulta log)
        {
            var uow        = container.Resolve <IUnitOfWork>();
            var repository = container.Resolve <ILogConsultaRepository>();

            uow.BeginTransaction();
            repository.Save(log);
            uow.Commit();
        }
示例#10
0
        private void RegisterIntentHandler()
        {
            var intentManager = mContainer.Resolve <IIntentManager>();

            // Register the AcxiomTabFactory with the Intent Manager, in order for AcxiomTabIntent to be handled.
            var acxiomTabFactory = mContainer.Resolve <AcxiomTabFactory>();

            intentManager.Register(acxiomTabFactory);
        }
示例#11
0
        public void Salvar(Atividade atividade)
        {
            var uow        = container.Resolve <IUnitOfWork>();
            var repository = container.Resolve <IAtividadeRepository>();

            uow.BeginTransaction();
            repository.Save(atividade);
            uow.Commit();
        }
        protected void ValidaCPF(ConsultaCPFCNPJVO vo, ErroConsulta erro)
        {
            if (String.IsNullOrEmpty(vo.CPF))
            {
                TemErro         = true;
                erroVO.erro     = "S";
                erroVO.mensagem = "O CPF não foi informado.";

                SalvarErro(erro, erroVO.mensagem);
            }
            else
            {
                if (!DomainUtil.CPFEhValido(vo.CPF))
                {
                    TemErro         = true;
                    erroVO.erro     = "S";
                    erroVO.mensagem = "O CPF informado não é válido.";

                    SalvarErro(erro, erroVO.mensagem);
                }
                else
                {
                    var CPFRepo = container.Resolve <ICPFBloqueadoRepository>();
                    if (CPFRepo.VerificaCPFBloqueado(vo.CPF))
                    {
                        TemErro         = true;
                        erroVO.erro     = "S";
                        erroVO.mensagem = "O CPF informado não pode ser consultado devido a solicitação do portador.";

                        SalvarErro(erro, erroVO.mensagem);
                    }
                }
            }
        }
示例#13
0
        public void Salvar(Exception excecao)
        {
            var         uow  = container.Resolve <IUnitOfWork>();
            ErroSistema erro = new ErroSistema();

            erro.Data           = DateTime.Now;
            erro.Excecao        = excecao.Message.Length < 500 ? excecao.Message : excecao.Message.Substring(0, 499);
            erro.ExcecaoInterna = (excecao.InnerException != null && !String.IsNullOrEmpty(excecao.InnerException.Message) ? excecao.InnerException.Message : String.Empty);
            erro.Descricao      = excecao.ToString().Substring(0, excecao.ToString().Length < 5000 ? excecao.ToString().Length : 4999);

            var repository = container.Resolve <IErroSistemaRepository>();

            uow.BeginTransaction();
            repository.Save(erro);
            uow.Commit();
        }
示例#14
0
        private void RegisterContextCommands()
        {
            var registry = mContainer.Resolve <IGenericContextMenuCommandProviderFactoryRegistry>();

            var commandsFactoryType = mContainer.CreateAssistedInterfaceFactoryType(typeof(IGenericContextMenuCommandProviderFactory <ICommandsContext>), typeof(ItemDetailsCommandProvider));
            var commandsFactory     = (IGenericContextMenuCommandProviderFactory <ICommandsContext>)mContainer.Resolve(commandsFactoryType);

            registry.Register <ICommandsContext>(commandsFactory);
        }
示例#15
0
        public static void Register(IDependencyInjectionContainer container)
        {
            // CSLA 4 Configuration

            // NOTE: For some reason this doesn't work even though the correct type is configured in the DI container
            //var modelBinder = container.Resolve<IModelBinder>();
            var modelBinder = new CslaModelBinder();
            ModelBinders.Binders.DefaultBinder = modelBinder;

            // Localization
            var modelMetadataProvider = container.Resolve<LocalizedModelMetadataProvider>();
            ModelMetadataProviders.Current = modelMetadataProvider;

            var modelValidatorProvider = container.Resolve<LocalizedModelValidatorProvider>();
            ModelValidatorProviders.Providers.Clear();
            ModelValidatorProviders.Providers.Add(modelValidatorProvider);
        }
示例#16
0
        public static void Register(IDependencyInjectionContainer container)
        {
            // Configure AutoMapper - all work done in constructor
            container.Resolve <IDataInitializer>();

            // TODO: Remove the initializer before deploying to production
            Database.SetInitializer(new ComplexCommerceSeeder());
        }
示例#17
0
 private static ILoggerFactory GetLoggerFactoryInternal(IDependencyInjectionContainer container)
 {
     if (!container.IsRegistered <ILoggerFactory>())
     {
         throw new InvalidOperationException($"Please Register the {nameof(ILoggingModule)} Module at the IOC.");
     }
     return(container.Resolve <ILoggerFactory>());
 }
示例#18
0
        public static void Register(IDependencyInjectionContainer container)
        {
            // Configure AutoMapper - all work done in constructor
            container.Resolve<IDataInitializer>();

            // TODO: Remove the initializer before deploying to production
            Database.SetInitializer(new ComplexCommerceSeeder());
        }
 protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
 {
     if (controllerType == null)
     {
         return(base.GetControllerInstance(requestContext, controllerType));
     }
     return(container.Resolve(controllerType) as IController);
 }
示例#20
0
        public static void Register(IDependencyInjectionContainer container)
        {
            // CSLA 4 Configuration

            // NOTE: For some reason this doesn't work even though the correct type is configured in the DI container
            //var modelBinder = container.Resolve<IModelBinder>();
            var modelBinder = new CslaModelBinder();

            ModelBinders.Binders.DefaultBinder = modelBinder;

            // Localization
            var modelMetadataProvider = container.Resolve <LocalizedModelMetadataProvider>();

            ModelMetadataProviders.Current = modelMetadataProvider;

            var modelValidatorProvider = container.Resolve <LocalizedModelValidatorProvider>();

            ModelValidatorProviders.Providers.Clear();
            ModelValidatorProviders.Providers.Add(modelValidatorProvider);
        }
示例#21
0
        /// <summary>
        /// Adds a new button to the Intelligence Portal header.
        /// </summary>
        /// <param name="headerButtonCaption">The caption to display in the button.</param>
        /// <param name="headerButtonTooltip">The text to display in the tooltip when a user hovers the mouse over the button.</param>
        /// <param name="buttonCommand">The command to run when the button is clicked.</param>
        public void RegisterHeaderCommand(
            string headerButtonCaption,
            string headerButtonTooltip,
            SimpleCommand buttonCommand)
        {
            // We may well be called before the header bar is actually on screen, so
            // we need to loop until it's there (or the initialization code times us out)
            var timer = mContainer.Resolve <IDispatcherTimer>();

            timer.Interval = TimeSpan.FromMilliseconds(10);
            timer.Tick    += delegate
            {
                var toolboxView = Application.Current.RootVisual.GetVisualDescendants().OfType <ToolboxView>().SingleOrDefault();
                if (toolboxView == null)
                {
                    // Toolbox not visible yet.
                    return;
                }

                // Toolbox is visible now.
                timer.Stop();

                // Find the grid that contains the buttons
                var layoutGrid = (Grid)toolboxView.Content;
                var grid2      = (Grid)layoutGrid.Children[0];
                var grid3      = (Grid)grid2.Children[0];
                var grid4      = (Grid)grid3.Children[0];

                var destinationGrid = grid4;

                // Add a new column definition
                var existingColCount = destinationGrid.ColumnDefinitions.Count;
                destinationGrid.ColumnDefinitions.Add(new ColumnDefinition());

                // Add the button.
                var button = new HeaderButton();
                button.HeaderButtonTextBlockBase.Text      = headerButtonCaption;
                button.HeaderButtonTextBlockHighlight.Text = headerButtonCaption;

                var tooltip = ToolTipService.GetToolTip(button.ButtonControl) as ToolTip;
                if (tooltip != null)
                {
                    tooltip.Content = headerButtonTooltip;
                }

                button.ButtonControl.Command = buttonCommand;

                button.SetValue(Grid.ColumnProperty, existingColCount);
                destinationGrid.Children.Add(button);
            };

            timer.Start();
        }
        protected void ValidaEmail(String email, ErroConsulta erro)
        {
            if (String.IsNullOrEmpty(email))
            {
                TemErro         = true;
                erroVO.erro     = "S";
                erroVO.mensagem = "O e-mail deve ser informado.";

                SalvarErro(erro, erroVO.mensagem);
            }
            else
            {
                var usuarioRepo = container.Resolve <IUsuarioRepository>();
                if (!usuarioRepo.VerificarSeUsuarioExiste(email))
                {
                    TemErro         = true;
                    erroVO.erro     = "S";
                    erroVO.mensagem = "O e-mail informado não está cadastrado.";

                    SalvarErro(erro, erroVO.mensagem);
                }
            }
        }
示例#23
0
        private void RegisterIntentHandler()
        {
            var intentManager = mContainer.Resolve <IIntentManager>();

            // Register the DomainToolTabFactory with the Intent Manager, in order for DomainToolTabIntent to be handled.
            var domainToolTabFactory = mContainer.Resolve <DomainToolsTabFactory>();

            intentManager.Register(domainToolTabFactory);
        }
示例#24
0
        private void RegisterContextCommands()
        {
            // Ask unity to give us the central registry for holding on to
            // context menu command provider factories.
            var registry = mContainer.Resolve <IGenericContextMenuCommandProviderFactoryRegistry>();

            // Create an assisted implementation of the context menu command
            // provider factory, for producing ExampleCommandProvider factory
            // instances.
            var commandsFactoryType = mContainer.CreateAssistedInterfaceFactoryType(
                factoryInterfaceType: typeof(IGenericContextMenuCommandProviderFactory <ICommandsContext>),
                implementationType: typeof(ExampleCommandProvider));

            // Create an instance of our ExampleCommandProvider factory.
            var commandsFactory = (IGenericContextMenuCommandProviderFactory <ICommandsContext>)mContainer.Resolve(commandsFactoryType);

            // Register our factory with the central registry.
            registry.Register <ICommandsContext>(commandsFactory);
        }
示例#25
0
        public IHttpActionResult LogarUsuarioMobile(String email, String senha, String city, String countryCode, String isp, String org, String ip, String region, String modeloCel, String numeroIMEI, String operadora)
        {
            String novacity        = String.Empty;
            String novocountryCode = String.Empty;
            String novoisp         = String.Empty;
            String novoorg         = String.Empty;
            String novoip          = String.Empty;
            String novaregion      = String.Empty;
            String novomodeloCel   = String.Empty;
            String novonumeroIMEI  = String.Empty;
            String novaoperadora   = String.Empty;

            novacity        = !String.IsNullOrEmpty(city) ? city.Substring(0, city.Length > 50 ? 50 : city.Length) : String.Empty;
            novocountryCode = !String.IsNullOrEmpty(countryCode) ? countryCode.Substring(0, countryCode.Length > 50 ? 50 : countryCode.Length) : String.Empty;
            novoisp         = !String.IsNullOrEmpty(isp) ? isp.Substring(0, isp.Length > 50 ? 50 : isp.Length) : String.Empty;
            novoorg         = !String.IsNullOrEmpty(org) ? org.Substring(0, org.Length > 50 ? 50 : org.Length) : String.Empty;
            novoip          = !String.IsNullOrEmpty(ip) ? ip.Substring(0, ip.Length > 50 ? 50 : ip.Length) : String.Empty;
            novaregion      = !String.IsNullOrEmpty(region) ? region.Substring(0, region.Length > 50 ? 50 : region.Length) : String.Empty;
            novomodeloCel   = !String.IsNullOrEmpty(modeloCel) ? modeloCel.Substring(0, modeloCel.Length > 50 ? 50 : modeloCel.Length) : String.Empty;
            novonumeroIMEI  = !String.IsNullOrEmpty(numeroIMEI) ? numeroIMEI.Substring(0, numeroIMEI.Length > 20 ? 20 : numeroIMEI.Length) : String.Empty;
            novaoperadora   = !String.IsNullOrEmpty(operadora) ? operadora.Substring(0, operadora.Length > 20 ? 20 : operadora.Length) : String.Empty;

            var resultado = ValidarLogon(email, senha);

            if (resultado != null)
            {
                return(resultado);
            }

            try
            {
                IErroLoginRepository repositoryErro = container.Resolve <IErroLoginRepository>();

                var bloqueado = repositoryErro.CometeuMuitosErrosLogin(email);

                if (bloqueado)
                {
                    return(NotFound());
                }

                IUsuarioRepository repository = container.Resolve <IUsuarioRepository>();

                var ultimaAssinatura = String.Empty;
                var ultimoLogon      = String.Empty;
                var usuarioExistente = repository.ObterPeloEmailESenha(email, senha);
                if (usuarioExistente != null)
                {
                    if (!String.IsNullOrEmpty(usuarioExistente.Ativo) && usuarioExistente.Ativo == "N")
                    {
                        return(Json(new { erro = "S", mensagem = String.Format("Seu cadastro está inativado pelo seguinte motivo: {0}", usuarioExistente.MotivoInativo) }));
                    }

                    IAssinaturaRepository assinaturaRepo = container.Resolve <IAssinaturaRepository>();

                    var dataFim = assinaturaRepo.ObterDataFimAssinaturaMaisRecentePeloEmailDoUsuario(email);

                    if (!String.IsNullOrEmpty(dataFim))
                    {
                        ultimaAssinatura = dataFim;
                    }

                    IAtividadeRepository atividadeRepo = container.Resolve <IAtividadeRepository>();

                    var ultimoLogonBD = atividadeRepo.ObterUltimoLogonPeloEmail(email);

                    if (!String.IsNullOrEmpty(ultimoLogonBD))
                    {
                        ultimoLogon = ultimoLogonBD;
                    }

                    var atividadeAtual = new Atividade()
                    {
                        Usuario       = usuarioExistente,
                        IP            = ip,
                        Data          = DateTime.Now,
                        TipoAtividade = Convert.ToInt32(TipoAtividade.LogonUsuario),
                        Origem        = Convert.ToInt32(OrigemAcesso.Android),
                        Descricao     = "O usuário com o e-mail " + email + " logou no sistema.",
                        IMEI          = novonumeroIMEI,
                        Cidade        = novacity,
                        ModeloCelular = novomodeloCel,
                        Operadora     = novaoperadora,
                        Pais          = novocountryCode,
                        Provedor      = ObterProvedor(org, isp)
                    };

                    Task.Run(() =>
                    {
                        //SalvarAtividadeHelper.SalvarAtividade(atividadeAtual);
                    });

                    return(Json(new { erro = "N", mensagem = "OK", nome = usuarioExistente.Nome, email = usuarioExistente.Email, cadastrado = String.Format("{0:dd/MM/yyyy}", usuarioExistente.DataCadastro), dataassinatura = ultimaAssinatura, logon = ultimoLogon, codigoIndicacao = usuarioExistente.Id + 1000 }));
                }
                else
                {
                    ErroLogin erro = new ErroLogin();
                    erro.Email     = email;
                    erro.IMEI      = numeroIMEI;
                    erro.Data      = DateTime.Now;
                    erro.Operadora = operadora;
                    erro.IP        = ip;
                    erro.Senha     = senha;

                    //SalvarErroLoginHelper.SalvarErro(erro);
                    return(Json(new { erro = "S", mensagem = "E-mail não cadastrado ou senha incorreta." }));
                }
            }
            catch (Exception ex)
            {
                //SalvarErroSistemaHelper.SalvarErro(ex);
                String mensagem        = !String.IsNullOrEmpty(ex.Message) ? ex.Message : String.Empty;
                String mensagemInterna = ex.InnerException != null && String.IsNullOrEmpty(ex.InnerException.Message) ? ex.InnerException.Message : String.Empty;
                String assunto         = "Erro na API de Login de usuário ";
                String mensagem2       = String.Format("Exceção: {0} \n Exceção interna: {1}, \n Data/Hora: {2} \n Email: {3}: ", mensagem, mensagemInterna, DateTime.Now, email);

                //EmailHelper.EnviarEmail(assunto, "*****@*****.**", mensagem2);

                return(Json(new { erro = "S", mensagem = "Ocorreu um erro inesperado ao tentar realizar o seu login, não se preocupe, o suporte já foi acionado e vai resolver o problema e te informar assim que for verificado." }));
            }
        }
示例#26
0
        public IHttpActionResult ObterPessoaFisicaPeloCPF(RequisicaoConsultaVO requisicao)
        {
            Boolean usaCredito = false;
            var     erro       = new ErroConsulta();

            erro.Cpfcnpj    = requisicao.cpf;
            erro.Email      = requisicao.email;
            erro.Aplicativo = requisicao.aplicativo;
            erro.Data       = DateTime.Now;
            erro.Versao     = requisicao.versao;
            erro.Ip         = requisicao.ip;

            var consultaVO = new ConsultaCPFCNPJVO();

            consultaVO.CPF    = requisicao.cpf;
            consultaVO.Email  = requisicao.email;
            consultaVO.Versao = requisicao.versao;
            consultaVO.IP     = requisicao.ip;
            consultaVO.Hash   = requisicao.hash;

            var hashGerado = DomainUtil.GerarHashMD5(String.Concat(requisicao.cpf, requisicao.email, requisicao.ip, requisicao.cpf));

            consultaVO.Hash = requisicao.senha;
            var validacao = container.Resolve <ValidacaoConsultaCPFService>();

            validacao.Validate(consultaVO);

            if (!validacao.TemErro)
            {
                var pessoaFisicaRepository = container.Resolve <IPessoaFisicaRepository>();

                var pessoa  = pessoaFisicaRepository.ObterUltimaConsultaPessoaFisicaPeloCPF(requisicao.cpf);
                var usuario = container.Resolve <IUsuarioRepository>().ObterPeloEmail(requisicao.email);
                if ((TipoAplicativoEnum)requisicao.aplicativo == TipoAplicativoEnum.Android)
                {
                    var telefoneUsuarioRepo = container.Resolve <ITelefoneUsuarioRepository>();
                    var telefone            = telefoneUsuarioRepo.ObterTelefonePorUsuarioEIMEI(usuario.Id, requisicao.imei);
                    if (telefone != null && requisicao.imei != telefone.IMEI)
                    {
                        return(Json(new { erro = "S", mensagem = String.Format("Já existe um telefone com outro IMEI cadastrado para esta conta. Fabricante: {0} Modelo: {1} - Caso tenha trocado de aparelho contate o desenvolvedor para fazer a atualização de IMEI do seu cadastro.", telefone.Fabricante, telefone.Modelo) }));
                    }
                    else
                    {
                        TelefoneUsuario tel = new TelefoneUsuario();
                        tel.DataCadastro = DateTime.Now;
                        tel.Fabricante   = requisicao.fabricante;
                        tel.IMEI         = requisicao.imei;
                        tel.Modelo       = requisicao.modelo;
                        tel.Numero       = requisicao.numero;
                        tel.Operadora    = requisicao.operadora;
                        tel.Usuario      = usuario;
                    }
                }

                if (pessoa != null && !String.IsNullOrEmpty(pessoa.Nome) && pessoa.Vitalicio != "S")
                {
                    if (pessoa.DataCadastro.Date.AddDays(+90) < DateTime.Now.Date)
                    {
                        ILimiteUsuarioRepository limiteRepository = container.Resolve <ILimiteUsuarioRepository>();
                        var limite = limiteRepository.ObterLimiteUsuarioPeloEmail(requisicao.email);

                        if (limite != null)
                        {
                            ICreditoRepository creditoRepo = container.Resolve <ICreditoRepository>();
                            var credito = creditoRepo.ObterCreditoPeloUsuario(Convert.ToInt32(usuario.Id));
                            if (credito == null)
                            {
                                if (limite.Quantidade >= limite.LimiteConsultas && usuario.Especial != "S")
                                {
                                    return(Json(new { erro = "S", mensagem = String.Format("O seu usuário já atingiu o limite diário de consultas, que são {0} consultas, caso queira fazer novas consultas aguarde até o próximo dia ou adquira um pacote de consultas avulsas.", limite.LimiteConsultas) }));
                                }
                            }
                            else
                            {
                                usaCredito = true;
                            }
                        }
                        else
                        {
                            usaCredito = true;
                        }

                        pessoa = pessoaFisicaRepository.ObterNovaPessoaPeloCPF(requisicao.cpf);
                        if (pessoa.Id == 0)
                        {
                            pessoa.Id = (Int32?)null;
                        }

                        var logConsulta = new LogConsulta();
                        logConsulta.Origem       = Convert.ToInt32(OrigemConsultaEnum.SeekLoc);
                        logConsulta.Tipo         = Convert.ToInt32(TipoConsultaEnum.CPF);
                        logConsulta.Usuario      = usuario;
                        logConsulta.CPFCNPJ      = requisicao.cpf;
                        logConsulta.DataCadastro = DateTime.Now;
                        logConsulta.TemResultado = (pessoa != null && !String.IsNullOrEmpty(pessoa.Nome)) ? "S" : "N";
                        container.Resolve <LogConsultaCRUDService>().Salvar(logConsulta);

                        if (pessoa != null)
                        {
                            var atividadeAtual = new Atividade()
                            {
                                Usuario = usuario, IP = requisicao.ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.ConsultaPessoaFisicaCPF), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + requisicao.email + " fez uma pesquisa de CPF com o número " + requisicao.cpf
                            };

                            container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);

                            if (usaCredito)
                            {
                                container.Resolve <CreditoCRUDService>().Remover(Convert.ToInt32(usuario.Id), 1);
                            }

                            pessoa.UsuarioConsulta = usuario;
                            pessoa.CPF             = requisicao.cpf;
                            pessoa.DataCadastro    = DateTime.Now;

                            container.Resolve <PessoaFisica2CRUDService>().Salvar(pessoa);

                            pessoa.Enderecos.ToList().ForEach(x => x.PessoaFisica2 = null);
                            pessoa.Veiculos.ToList().ForEach(x => x.PessoaFisica2  = null);
                            pessoa.Emails.ToList().ForEach(x => x.PessoaFisica2    = null);
                            pessoa.Empregos.ToList().ForEach(x => x.PessoaFisica2  = null);
                            pessoa.Vizinhos.ToList().ForEach(x => x.PessoaFisica2  = null);
                            pessoa.Parentes.ToList().ForEach(x => x.PessoaFisica2  = null);
                            pessoa.Telefones.ToList().ForEach(x => x.PessoaFisica2 = null);

                            if (pessoa.Veiculos != null)
                            {
                                pessoa.Veiculos.ToList().ForEach(x => x.CombustivelTexto = DomainUtil.ObterCombustivelTexto(x.Combustivel));
                                pessoa.Veiculos.ToList().ForEach(x => x.EspecieTexto     = DomainUtil.ObterEspecieVeiculoTexto(x.Especie));
                                pessoa.Veiculos.ToList().ForEach(x => x.TipoTexto        = DomainUtil.ObterTipoVeiculoTexto(x.Tipo));
                            }

                            return(Json(new
                            {
                                erro = "N",
                                Nome = pessoa.Nome,
                                CPF = pessoa.CPF,
                                DataNascimento = pessoa.DataNascimento,
                                NomeMae = pessoa.NomeMae,
                                Enderecos = pessoa.Enderecos,
                                Veiculos = pessoa.Veiculos,
                                Emails = pessoa.Emails,
                                Empregos = pessoa.Empregos,
                                Vizinhos = pessoa.Vizinhos,
                                Parentes = pessoa.Parentes,
                                Telefones = pessoa.Telefones,
                                Importado = pessoa.Importado,
                                Hash = Guid.NewGuid().ToString(),
                                HoraConsulta = DateTime.Now.ToString("HH:mm:ss"),
                                DataConsulta = DateTime.Now.ToString("dd/MM/yyyy"),
                                NovaAPI = pessoa.APISeekLoc
                            }));
                        }
                    }
                    else
                    {
                        pessoa.Enderecos.ToList().ForEach(x => x.PessoaFisica2 = null);
                        pessoa.Veiculos.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Emails.ToList().ForEach(x => x.PessoaFisica2    = null);
                        pessoa.Empregos.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Vizinhos.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Parentes.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Telefones.ToList().ForEach(x => x.PessoaFisica2 = null);

                        if (pessoa.Veiculos != null)
                        {
                            pessoa.Veiculos.ToList().ForEach(x => x.CombustivelTexto = DomainUtil.ObterCombustivelTexto(x.Combustivel));
                            pessoa.Veiculos.ToList().ForEach(x => x.EspecieTexto     = DomainUtil.ObterEspecieVeiculoTexto(x.Especie));
                            pessoa.Veiculos.ToList().ForEach(x => x.TipoTexto        = DomainUtil.ObterTipoVeiculoTexto(x.Tipo));
                        }

                        return(Json(new
                        {
                            erro = "N",
                            Nome = pessoa.Nome,
                            CPF = pessoa.CPF,
                            DataNascimento = pessoa.DataNascimento,
                            NomeMae = pessoa.NomeMae,
                            Enderecos = pessoa.Enderecos,
                            Veiculos = pessoa.Veiculos,
                            Emails = pessoa.Emails,
                            Empregos = pessoa.Empregos,
                            Vizinhos = pessoa.Vizinhos,
                            Parentes = pessoa.Parentes,
                            Telefones = pessoa.Telefones,
                            Importado = pessoa.Importado,
                            Hash = Guid.NewGuid().ToString(),
                            HoraConsulta = DateTime.Now.ToString("HH:mm:ss"),
                            DataConsulta = DateTime.Now.ToString("dd/MM/yyyy")
                        }));
                    }
                }
                else
                {
                    ILimiteUsuarioRepository limiteRepository = container.Resolve <ILimiteUsuarioRepository>();
                    var limite = limiteRepository.ObterLimiteUsuarioPeloEmail(requisicao.email);

                    if (limite != null)
                    {
                        ICreditoRepository creditoRepo = container.Resolve <ICreditoRepository>();
                        var credito = creditoRepo.ObterCreditoPeloUsuario(Convert.ToInt32(usuario.Id));
                        if (credito == null)
                        {
                            if (limite.Quantidade >= limite.LimiteConsultas && usuario.Especial != "S")
                            {
                                return(Json(new { erro = "S", mensagem = String.Format("O seu usuário já atingiu o limite diário de consultas, que são {0} consultas, caso queira fazer novas consultas aguarde até o próximo dia ou adquira um pacote de consultas avulsas.", limite.LimiteConsultas) }));
                            }
                        }
                        else
                        {
                            usaCredito = true;
                        }
                    }
                    else
                    {
                        usaCredito = true;
                    }

                    pessoa = pessoaFisicaRepository.ObterNovaPessoaPeloCPF(requisicao.cpf);

                    if (pessoa != null)
                    {
                        if (usaCredito)
                        {
                            container.Resolve <CreditoCRUDService>().Remover(Convert.ToInt32(usuario.Id), 1);
                        }
                    }

                    var logConsulta = new LogConsulta();
                    logConsulta.Origem       = Convert.ToInt32(OrigemConsultaEnum.SeekLoc);
                    logConsulta.Tipo         = Convert.ToInt32(TipoConsultaEnum.CPF);
                    logConsulta.Usuario      = usuario;
                    logConsulta.CPFCNPJ      = requisicao.cpf;
                    logConsulta.DataCadastro = DateTime.Now;
                    logConsulta.TemResultado = (pessoa != null && !String.IsNullOrEmpty(pessoa.Nome)) ? "S" : "N";

                    container.Resolve <LogConsultaCRUDService>().Salvar(logConsulta);

                    if (pessoa != null && String.IsNullOrEmpty(pessoa.Mensagem))
                    {
                        var atividadeAtual = new Atividade()
                        {
                            Usuario = usuario, IP = requisicao.ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.ConsultaPessoaFisicaCPF), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + requisicao.email + " fez uma pesquisa de CPF com o número " + requisicao.cpf
                        };

                        container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);

                        pessoa.UsuarioConsulta = usuario;
                        pessoa.CPF             = requisicao.cpf;
                        pessoa.Hash            = requisicao.hash;
                        pessoa.DataCadastro    = DateTime.Now;

                        container.Resolve <PessoaFisica2CRUDService>().Salvar(pessoa);

                        pessoa.Enderecos.ToList().ForEach(x => x.PessoaFisica2 = null);
                        pessoa.Veiculos.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Emails.ToList().ForEach(x => x.PessoaFisica2    = null);
                        pessoa.Empregos.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Vizinhos.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Parentes.ToList().ForEach(x => x.PessoaFisica2  = null);
                        pessoa.Telefones.ToList().ForEach(x => x.PessoaFisica2 = null);

                        if (pessoa.Veiculos != null)
                        {
                            pessoa.Veiculos.ToList().ForEach(x => x.CombustivelTexto = DomainUtil.ObterCombustivelTexto(x.Combustivel));
                            pessoa.Veiculos.ToList().ForEach(x => x.EspecieTexto     = DomainUtil.ObterEspecieVeiculoTexto(x.Especie));
                            pessoa.Veiculos.ToList().ForEach(x => x.TipoTexto        = DomainUtil.ObterTipoVeiculoTexto(x.Tipo));
                        }

                        return(Json(new
                        {
                            erro = "N",
                            Nome = pessoa.Nome,
                            CPF = pessoa.CPF,
                            DataNascimento = pessoa.DataNascimento,
                            NomeMae = pessoa.NomeMae,
                            Enderecos = pessoa.Enderecos,
                            Veiculos = pessoa.Veiculos,
                            Emails = pessoa.Emails,
                            Empregos = pessoa.Empregos,
                            Vizinhos = pessoa.Vizinhos,
                            Parentes = pessoa.Parentes,
                            Telefones = pessoa.Telefones,
                            Importado = pessoa.Importado,
                            Hash = Guid.NewGuid().ToString(),
                            HoraConsulta = DateTime.Now.ToString("HH:mm:ss"),
                            DataConsulta = DateTime.Now.ToString("dd/MM/yyyy")
                        }));
                    }
                    else
                    {
                        return(Json(new { erro = "S", mensagem = "Sem resultado para este CPF." }));
                    }
                }
            }
            else
            {
                return(Json(new { erro = "S", mensagem = validacao.erroVO.mensagem }));
            }


            return(Json(new { erro = "S", mensagem = "Sem resultado" }));
        }
示例#27
0
 protected override object DoGetInstance(Type serviceType, string key)
 {
     return(_container.Resolve(serviceType));
 }
 public static void Register(IDependencyInjectionContainer container)
 {
     // Setup global sitemap loader
     MvcSiteMapProvider.SiteMaps.Loader = container.Resolve<ISiteMapLoader>();
 }
示例#29
0
 public static void Register(IDependencyInjectionContainer container)
 {
     // Setup global sitemap loader
     MvcSiteMapProvider.SiteMaps.Loader = container.Resolve <ISiteMapLoader>();
 }
示例#30
0
        public IHttpActionResult GravarPedidoTecnico(String emailUsuario, String senhaUsuario, Int16 motivo, String descricao, String cpf)
        {
            try
            {
                var tipo = (TipoPedidoTecnico)motivo;

                var usuario = container.Resolve <IUsuarioRepository>().ObterPeloEmailESenha(emailUsuario, senhaUsuario);

                if (usuario == null)
                {
                    return(Json(new { erro = "S", mensagem = "Usuário não possui acesso a este serviço." }));
                }
                else
                {
                    var repository = container.Resolve <IPedidoTecnicoRepository>();

                    if (tipo == TipoPedidoTecnico.DadosCPFDesatualizados || tipo == TipoPedidoTecnico.ErroConsultarCPF)
                    {
                        var pedidos = repository.ObterPedidosTecnicosUsuarioPeloCPF(usuario.Id, cpf);

                        if (pedidos != null && pedidos.Count > 0)
                        {
                            var pedido = pedidos[0];
                            return(Json(new { erro = "S", mensagem = String.Format("Já existe o chamado técnico {0} para verificação deste CPF.", pedido.Id.ToString()) }));
                        }
                        else
                        {
                            PedidoTecnico pedidoTecnico = new PedidoTecnico();
                            pedidoTecnico.CPF          = cpf;
                            pedidoTecnico.DataCadastro = DateTime.Now;
                            pedidoTecnico.Descricao    = descricao;
                            pedidoTecnico.Status       = (Int16)StatusPedidoTecnico.Pendente;
                            pedidoTecnico.Usuario      = usuario;
                            pedidoTecnico.Motivo       = (Int16)motivo;

                            repository.Save(pedidoTecnico);

                            return(Json(new { erro = "N", mensagem = "Gravado com sucesso." }));
                        }
                    }
                    else
                    {
                        PedidoTecnico pedidoTecnico = new PedidoTecnico();
                        pedidoTecnico.CPF          = cpf;
                        pedidoTecnico.DataCadastro = DateTime.Now;
                        pedidoTecnico.Descricao    = descricao;
                        pedidoTecnico.Status       = (Int16)StatusPedidoTecnico.Pendente;
                        pedidoTecnico.Usuario      = usuario;
                        pedidoTecnico.Motivo       = (Int16)motivo;

                        repository.Save(pedidoTecnico);

                        return(Json(new { erro = "N", mensagem = "Gravado com sucesso." }));
                    }
                }
            }
            catch (Exception)
            {
                return(Json(new { erro = "S", mensagem = "Erro ao gravar o chamado técnico, envie um e-mail para o desenvolvedor informando o ocorrido." }));
            }
        }
示例#31
0
 public IPersistenceContext GetContext()
 {
     return(container.Resolve(contextType) as IPersistenceContext);
 }
示例#32
0
 public static T Resolve <T>(this IDependencyInjectionContainer container)
 {
     return((T)container.Resolve(typeof(T)));
 }
示例#33
0
        public IHttpActionResult ObterNotificacao([FromBody] NotificacaoPagSeguroVO notificacao)
        {
            Boolean sandbox = true;
            String  ArquivoConfiguracaoPagSeguro = @"C:\temp\PagSeguroConfig.xml";

            if (notificacao == null)
            {
                Task.Run(() =>
                {
                    String assunto   = "Erro ao ObterNotificacao - ";
                    String mensagem2 = String.Format("Ocorreu um problema ao receber uma notificação (objeto nulo) do pagseguro: Data: {0}", DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss"));

                    container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false);
                });

                return(BadRequest());
            }

            try
            {
                var configuracaoRepo = container.Resolve <IConfiguracaoRepository>();
                var configuracao     = configuracaoRepo.GetById(1);

                if (configuracao != null)
                {
                    ArquivoConfiguracaoPagSeguro = configuracao.ArquivoConfiguracaoPagSeguro;
                    sandbox = configuracao.AmbienteProducao == "N";
                }

                // PagSeguroConfiguration.UrlXmlConfiguration = @"C:\temp\PagSeguroConfig.xml";
                EnvironmentConfiguration.ChangeEnvironment(sandbox);

                AccountCredentials credentials = PagSeguroConfiguration.Credentials(sandbox);
                Transaction        transaction = NotificationService.CheckTransaction(credentials, notificacao.notificationCode);

                if (transaction != null)
                {
                    if (!String.IsNullOrEmpty(transaction.Reference))
                    {
                        var pedidoRepo = container.Resolve <IPedidoRepository>();
                        var pedido     = pedidoRepo.GetById(Convert.ToInt32(transaction.Reference));
                        pedidoRepo.Evict(pedido);

                        try
                        {
                            if (pedido != null)
                            {
                                if (transaction.TransactionStatus == TransactionStatus.Cancelled)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Cancelado;
                                    pedido.Motivo              = "Cancelado pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para cancelado.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.InAnalysis)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pendente;
                                    pedido.Motivo              = "Em análise pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para em análise.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.Initiated)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pendente;
                                    pedido.Motivo              = "Iniciado pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para iniciado.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.WaitingPayment)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pendente;
                                    pedido.Motivo              = "Aguardando pagamento pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para aguardando pagamento.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.Available)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pago;
                                    pedido.Motivo              = "Saldo disponível no PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para disponível.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.Paid)
                                {
                                    if (pedido.Status == (Int32)StatusPedido.Pago || pedido.Status == (Int32)StatusPedido.Fechado || pedido.Status == (Int32)StatusPedido.Cancelado)
                                    {
                                        var atividadeAtual1 = new Atividade()
                                        {
                                            Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.AtividadeIncomumPagSeguro), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro aparentemente tentou mudar o status do pedido {0} que está pago/fechado/cancelado ", pedido.Id)
                                        };

                                        container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual1);

                                        return(Ok());
                                    }

                                    pedido.Status              = (Int32)StatusPedido.Pago;
                                    pedido.Motivo              = "Pagamento confirmado pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    if (pedido.Servico.GeraMeses == "S")
                                    {
                                        //verifica se o usuário tem alguma assinatura vigente
                                        var assinaturaRepo = container.Resolve <IAssinaturaRepository>();
                                        var assinatura     = assinaturaRepo.ObterAssinaturaMaisRecentePeloEmailDoUsuario(pedido.Usuario.Email);

                                        DateTime novaData = (assinatura != null && assinatura.DataFim > DateTime.Now) ? assinatura.DataFim : DateTime.Now;

                                        var novaAssinatura = new Assinatura();
                                        novaAssinatura.Pedido       = pedido;
                                        novaAssinatura.DataCadastro = DateTime.Now;
                                        novaAssinatura.DataInicio   = novaData;
                                        Int32 Quantidade = Convert.ToInt32(pedido.Servico.QuantidadeMeses);
                                        novaAssinatura.DataFim = novaData.AddMonths(Quantidade);
                                        novaAssinatura.Usuario = pedido.Usuario;

                                        container.Resolve <AssinaturaCRUDService>().Salvar(novaAssinatura);

                                        Task.Run(() =>
                                        {
                                            String assunto   = " - Pagamento de pedido confirmado";
                                            String mensagem2 = String.Format("Olá {0} <br><br> O pagamento do seu pedido {1} foi confirmado pelo pagseguro.<br><br>A vigência da sua nova assinatura do serviço de consulta é de {2} até {3}. <br><br> Atenciosamente, Equipe Subcode23", pedido.Usuario.Nome, pedido.Id, novaAssinatura.DataInicio.ToString("dd/MM/yyyy - HH:mm:ss"), novaAssinatura.DataFim.ToString("dd/MM/yyyy - HH:mm:ss"));

                                            container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, true);
                                        });
                                    }
                                    else if (pedido.Servico.GeraCredito == "S")
                                    {
                                        var creditoRepo = container.Resolve <ICreditoRepository>();
                                        var novoCredito = new Credito();
                                        novoCredito.Pedido       = pedido;
                                        novoCredito.DataCadastro = DateTime.Now;
                                        novoCredito.DataCadastro = DateTime.Now;
                                        Int32 Quantidade = Convert.ToInt32(pedido.Servico.QuantidadeCredito);
                                        novoCredito.Usuario = pedido.Usuario;

                                        creditoRepo.Save(novoCredito);
                                    }

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para pago.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Task.Run(() =>
                            {
                                String assunto   = "Erro no método ObterNotificacao - ";
                                String mensagem2 = String.Format("Ocorreu um erro -  Exceção: {0} - Exceção interna: {1} - Data: {2}", ex.Message, (ex.InnerException != null && ex.InnerException.Message != null) ? ex.InnerException.Message : "Exceção interna não definida", DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss"));

                                container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false);

                                //SalvarErroSistemaHelper.SalvarErro(ex);
                            });
                            return(BadRequest());
                        }
                    }
                    else
                    {
                        return(Ok());
                    }

                    return(Ok());
                }
            }

            catch (PagSeguroServiceException ex)
            {
                String mensagem = String.Empty;
                Task.Run(() =>
                {
                    String assunto = "Erro de PagSeguroServiceException no método ObterNotificacao - Subcode 23";
                    if (ex.Errors.Count > 0)
                    {
                        mensagem = ex.Errors[0].Code + " - " + ex.Errors[0].Message;
                    }
                    String mensagem2 = String.Format("Ocorreu um erro - Erro do pagseguro {0} - Data: {1}", mensagem, DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss"));

                    container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false);
                });
                return(BadRequest());
            }

            return(Ok());
        }
示例#34
0