Exemplo n.º 1
0
 public AuthenticationController(ICryptographer cryptographer, IPersistenceSession session, IAuth auth, IMessagingService messaging)
 {
     crypto = cryptographer;
     this.session = session;
     this.auth = auth;
     this.messaging = messaging;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Salva os dados da expressão.
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public override SaveResult Save(IPersistenceSession session)
        {
            if (!ExistsInStorage && Posicao == 0)
            {
                var provedor = Microsoft.Practices.ServiceLocation.ServiceLocator.Current
                               .GetInstance <IProvedorExpressaoRentabilidade>();

                Posicao = provedor.ObterUltimaPosicao() + 1;
            }

            var resultado = base.Save(session);

            if (resultado && !ExistsInStorage)
            {
                var provedorConfig = Microsoft.Practices.ServiceLocation.ServiceLocator.Current
                                     .GetInstance <IProvedorConfigRegistroRentabilidade>();

                var posicaoConfig = provedorConfig.ObterUltimaPosicao() + 1;

                var config = new ConfigRegistroRentabilidade
                {
                    Tipo       = (byte)Rentabilidade.TipoRegistroRentabilidade.Expressao,
                    IdRegistro = IdExpressaoRentabilidade,
                    Posicao    = posicaoConfig
                };

                var resultado2 = config.Save(session);
                if (!resultado2)
                {
                    return(resultado2);
                }
            }

            return(resultado);
        }
Exemplo n.º 3
0
 private void EnsureOpenPersistenceSession()
 {
     if (persistenceSession == null)
     {
         persistenceSession = persistence.OpenSession(SuppressAmbientTransaction);
     }
 }
Exemplo n.º 4
0
        public override SaveResult Save(IPersistenceSession session)
        {
            /* Chamados 48638, 48919, 48921 e 64819.
             * Caso o cliente já possua acréscimo/desconto no grupo/subgrupo/produto informado, a exceção é lançada. */
            if (IdDesconto <= 0 && (IdCliente > 0 || IdTabelaDesconto > 0))
            {
                var existeDesconto = Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance <IProvedorDescontoAcrescimoCliente>()
                                     .ExisteDescontoGrupoSubgrupoProdutoPorClienteOuTabela(IdCliente, IdTabelaDesconto, IdGrupoProd, IdSubgrupoProd, IdProduto);

                if (existeDesconto)
                {
                    return(new SaveResult(false, ("Não é possivel salvar o desconto, pois, já existe registro na tabela " +
                                                  "deste grupo/subgrupo/produto para o cliente. Atualize a tela e tente novamente.").GetFormatter()));
                }
            }

            /* Chamado 45969.
             * É extremamente necessário que o cliente seja setado como nulo e o Owner seja alterado para a tabela,
             * senão, ao inserir um cliente novo e associá-lo a uma tabela, o sistema considera que o ID ainda não foi preenchido
             * no registro de desconto/acréscimo e salva o registro com ID tabela e ID cliente juntos, fazendo com que
             * o banco de dados fique incorreto.*/
            if (IdTabelaDesconto > 0)
            {
                IdCliente = null;
            }
            else if (IdCliente > 0)
            {
                IdTabelaDesconto = null;
            }

            return(base.Save(session));
        }
Exemplo n.º 5
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="databaseSession">Instancia da sessão de persistencia do banco de dados.</param>
 /// <param name="cacheSession">Instancia da sessão de persistencia do cache.</param>
 /// <param name="typeSchema">Instancia dos esquemas dos tipos do sistema.</param>
 /// <param name="recordKeyFactory">Instancia da factory responsável pela criação das chaves de registro.</param>
 public DynamicPersistenceSession(IPersistenceSession databaseSession, IPersistenceSession cacheSession, Colosoft.Data.Schema.ITypeSchema typeSchema, Query.IRecordKeyFactory recordKeyFactory)
 {
     databaseSession.Require("databaseSession").NotNull();
     cacheSession.Require("cacheSession").NotNull();
     typeSchema.Require("typeSchema").NotNull();
     recordKeyFactory.Require("recordKeyFactory").NotNull();
     _databaseSession        = databaseSession;
     _cacheSession           = cacheSession;
     _typeSchema             = typeSchema;
     _recordKeyFactory       = recordKeyFactory;
     _defaultExecuterCreator = ((IPersistenceExecuterFactory)_databaseSession).ExecuterCreator;
     ((IPersistenceExecuterFactory)_databaseSession).ExecuterCreator = CreateExecuter;
 }
Exemplo n.º 6
0
        /// <summary>
        /// Salva os dados do plano de corte.
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public override SaveResult Save(IPersistenceSession session)
        {
            var resultado = base.Save(session);

            if (resultado)
            {
                var provedor = Microsoft.Practices.ServiceLocation.ServiceLocator
                               .Current.GetInstance <IProvedorPlanoCorte>();

                var produtosImpressao = provedor.ObterProdutosImpressao(this);

                foreach (var produtoImpressao in produtosImpressao)
                {
                    if (produtoImpressao.IdProdImpressao > 0)
                    {
                        session.Update(produtoImpressao);
                    }
                    else
                    {
                        session.Insert(produtoImpressao);
                    }
                }

                foreach (var retalho in Retalhos)
                {
                    if (retalho.IdRetalhoProducao.HasValue && retalho.IdRetalhoProducao.Value < 0)
                    {
                        // Realiza a atualização dos produtos de impressão para colocar
                        // o número correto da etiqueta do retalho
                        session.Update <Data.Model.ProdutoImpressao>(
                            new PersistenceParameterCollection()
                            .Add(nameof(Data.Model.ProdutoImpressao.NumEtiqueta), new PersistenceActionParameterProcessor(e =>
                        {
                            var id = 0;
                            e.TryGetPrimaryKey(retalho.IdRetalhoProducao.Value, out id);
                            return("R" + id + "-1/1");
                        })),
                            Colosoft.Query.ConditionalContainer
                            .Parse("IdRetalhoProducao=?id",
                                   new Colosoft.Query.QueryParameter("?id", new NewUidReference(retalho.IdRetalhoProducao.Value))),
                            (action, result) =>
                        {
                        });
                    }
                }
            }

            return(resultado);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Sobrescreve o método de exclusão da entidade de flags.
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public override DeleteResult Delete(IPersistenceSession session)
        {
            var validador = Microsoft.Practices.ServiceLocation.ServiceLocator
                            .Current.GetInstance <IValidadorFlagArqMesa>();

            // Executa a validação
            var resultadoValidacao = validador.ValidaExclusao(this);

            if (resultadoValidacao.Length > 0)
            {
                return(new Colosoft.Business.DeleteResult(false, resultadoValidacao.Join(" ")));
            }

            return(base.Delete(session));
        }
Exemplo n.º 8
0
        /// <summary>
        /// Método acionado quando a expressão for apagada.
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public override DeleteResult Delete(IPersistenceSession session)
        {
            var resultado = base.Delete(session);

            if (resultado)
            {
                // Apaga a configuração do registro de rentabilidade associada
                session.Delete <Data.Model.ConfigRegistroRentabilidade>(
                    Colosoft.Query.ConditionalContainer.Parse("Tipo=?tipo AND IdRegistro=?id")
                    .Add("?tipo", (byte)Rentabilidade.TipoRegistroRentabilidade.Expressao)
                    .Add("?id", IdExpressaoRentabilidade));
            }

            return(resultado);
        }
Exemplo n.º 9
0
        public void Dispose()
        {
            if (isDisposed)
            {
                return;
            }

            isDisposed = true;

            if (persistenceSession != null)
            {
                persistenceSession.Dispose();
                persistenceSession = null;
            }
        }
Exemplo n.º 10
0
        public override SaveResult Save(IPersistenceSession session)
        {
            var retorno = base.Save(session);

            if (!retorno)
            {
                return(retorno);
            }

            // Verifica se é um produto novo
            if (!ExistsInStorage)
            {
                var provedorProdutos = Microsoft.Practices.ServiceLocation.ServiceLocator
                                       .Current.GetInstance <Glass.Global.Negocios.Entidades.IProvedorProdutos>();

                // Cria os estoques que precisam ser inseridos
                foreach (var prod in provedorProdutos.ObtemProdutos())
                {
                    var produtoLoja = new Estoque.Negocios.Entidades.ProdutoLoja
                    {
                        IdProd = prod.Id,
                        IdLoja = IdLoja
                    };

                    ((Colosoft.Business.IConnectedEntity)produtoLoja).Connect(((Colosoft.Business.IConnectedEntity) this).SourceContext);

                    retorno = produtoLoja.Save(session);
                    if (!retorno)
                    {
                        return(retorno);
                    }
                }
            }

            return(new Colosoft.Business.SaveResult(true, null));
        }
Exemplo n.º 11
0
 public HomeController(IPersistenceSession session)
 {
     this.session = session;
 }
 public IPersistenceSession NewSession()
 {
     this.currentSession = new InMemoryPersistenceSession(this.eventStreams, this.snapshots);
     return this.currentSession;
 }
Exemplo n.º 13
0
 public SetupController(IPersistenceSession session)
 {
     this.session = session;
 }
 public EventStoreSession(EventStore eventStore, IPersistenceSession persistenceSession)
 {
     this.Context = new ExpandoObject();
     this.eventStore = eventStore;
     this.persistenceSession = persistenceSession;
 }