Example #1
0
        /// <summary>
        ///  Inicializa a instancia com os parametros informados.
        /// </summary>
        /// <param name="parameters">Dicionário com os parametros de inicialização.</param>
        public void Init(System.Collections.IDictionary parameters)
        {
            var sourceContext       = parameters["sourceContext"] as ISourceContext;
            var manager             = parameters["manager"] as IDataCacheManager;
            var logger              = parameters["logger"] as Colosoft.Logging.ILogger;
            var typeSchema          = parameters["typeSchema"] as Colosoft.Data.Schema.ITypeSchema;
            var cacheLoaderObserver = parameters["cacheLoaderObserver"] as ICacheLoaderObserver;
            var typesMetadata       = parameters["typesMetadata"] as IList <ITypeMetadata>;

            sourceContext.Require("sourceContext").NotNull();
            manager.Require("manager").NotNull();
            if (typesMetadata == null)
            {
                typeSchema.Require("typeSchema").NotNull();
            }
            logger.Require("logger").NotNull();
            _sourceContext = sourceContext;
            _manager       = manager;
            _logger        = logger;
            _typeSchema    = typeSchema;
            _typesMetadata = typesMetadata;
            _started       = false;
            if (cacheLoaderObserver != null)
            {
                _observer += cacheLoaderObserver;
            }
        }
Example #2
0
        /// <summary>
        /// Inicializa a isntancia.
        /// </summary>
        /// <param name="parameters">Parametros de configuração.</param>
        public void Init(System.Collections.IDictionary parameters)
        {
            var manager             = parameters["manager"] as IDataCacheManager;
            var downloader          = parameters["downloader"] as IDataEntryDownloader;
            var repository          = parameters["repository"] as IDataEntriesRepository;
            var logger              = parameters["logger"] as Colosoft.Logging.ILogger;
            var typeSchema          = parameters["typeSchema"] as Colosoft.Data.Schema.ITypeSchema;
            var cacheLoaderObserver = parameters["cacheLoaderObserver"] as ICacheLoaderObserver;

            manager.Require("manager").NotNull();
            downloader.Require("downloader").NotNull();
            repository.Require("repository").NotNull();
            typeSchema.Require("typeSchema").NotNull();
            logger.Require("logger").NotNull();
            _manager    = manager;
            _downloader = downloader;
            _repository = repository;
            _logger     = logger;
            _typeSchema = typeSchema;
            if (cacheLoaderObserver != null)
            {
                _observer += cacheLoaderObserver;
            }
            downloader.DownloadCompleted += Downloader_DownloadCompleted;
            downloader.ProgressChanged   += Downloader_ProgressChanged;
        }
Example #3
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="MonitorCondicoesPagamento"/>.
 /// </summary>
 /// <param name="configuracao">Configuração que será usada.</param>
 /// <param name="logger">Logger.</param>
 public MonitorCondicoesPagamento(
     ConfiguracaoKhan configuracao,
     Colosoft.Logging.ILogger logger)
 {
     this.configuracao = configuracao;
     this.logger       = logger;
     Colosoft.Net.ServiceClientsManager.Current.Register(this.serviceUid, this.CriarCliente);
 }
Example #4
0
        /// <summary>
        /// Construtor padrão.
        /// </summary>
        /// <param name="service"></param>
        /// <param name="logger"></param>
        public HttpServiceHost(Colosoft.ServiceProcess.IHttpService service, Colosoft.Logging.ILogger logger)
        {
            _service = service;
            _logger  = logger;
            var thread = new System.Threading.Thread(() => OpenHttpChannel());

            thread.IsBackground = true;
            thread.Start();
        }
Example #5
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="MonitorIndicadoresFinanceiros"/>.
 /// </summary>
 /// <param name="configuracao">Configuração.</param>
 /// <param name="logger">Logger que deve ser usado.</param>
 /// <param name="rentabilidadeFluxo">Fluxo de negócio da rentabilidade.</param>
 public MonitorIndicadoresFinanceiros(
     ConfiguracaoKhan configuracao,
     Colosoft.Logging.ILogger logger,
     Rentabilidade.Negocios.IRentabilidadeFluxo rentabilidadeFluxo)
 {
     this.configuracao       = configuracao;
     this.logger             = logger;
     this.rentabilidadeFluxo = rentabilidadeFluxo;
     Colosoft.Net.ServiceClientsManager.Current.Register(this.serviceUid, this.CriarCliente);
 }
Example #6
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="MonitorProdutos"/>.
 /// </summary>
 /// <param name="domainEvents">Eventos de domínio.</param>
 /// <param name="logger">Logger.</param>
 /// <param name="configuracao">Configuração.</param>
 /// <param name="produtoFluxo">Fluxo de negócio dos produtos.</param>
 /// <param name="provedorHistorico">Provedor dos históricos.</param>
 public MonitorProdutos(
     Colosoft.Domain.IDomainEvents domainEvents,
     Colosoft.Logging.ILogger logger,
     ConfiguracaoKhan configuracao,
     Global.Negocios.IProdutoFluxo produtoFluxo,
     Historico.IProvedorHistorico provedorHistorico)
     : base(domainEvents)
 {
     this.logger            = logger;
     this.configuracao      = configuracao;
     this.produtoFluxo      = produtoFluxo;
     this.provedorHistorico = provedorHistorico;
     Colosoft.Net.ServiceClientsManager.Current.Register(this.serviceUid, this.CriarCliente);
 }
Example #7
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="sourceContext">Contexto de origem que será usado para fazer as consulta no banco de dados.</param>
 /// <param name="typeSchema"></param>
 /// <param name="dataEntryDownloader">Instancia do downloader da entradas de dados.</param>
 /// <param name="dataEntriesRepository">Instancia do repositório das entradas de dados.</param>
 /// <param name="cacheLoaderObverser">Observer o loader.</param>
 /// <param name="logger"></param>
 public DataCacheManager(Colosoft.Query.ISourceContext sourceContext, ITypeSchema typeSchema, IDataEntryDownloader dataEntryDownloader, IDataEntriesRepository dataEntriesRepository, ICacheLoaderObserver cacheLoaderObverser, Colosoft.Logging.ILogger logger)
 {
     sourceContext.Require("sourceContext").NotNull();
     typeSchema.Require("typeSchema").NotNull();
     dataEntryDownloader.Require("dataEntryDownloader").NotNull();
     dataEntriesRepository.Require("dataEntriesRepository").NotNull();
     cacheLoaderObverser.Require("cacheLoaderObserver").NotNull();
     logger.Require("logger").NotNull();
     _sourceContext         = sourceContext;
     _typeSchema            = typeSchema;
     _dataEntryDownloader   = dataEntryDownloader;
     _dataEntriesRepository = dataEntriesRepository;
     _cacheLoaderObserver   = cacheLoaderObverser;
     _logger = logger;
 }
Example #8
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="MonitorNotaFiscal"/>.
        /// </summary>
        /// <param name="domainEvents">Eventos de domínio.</param>
        /// <param name="logger">Logger para registrar as informações.</param>
        /// <param name="configuracao">Configuração.</param>
        /// <param name="provedorHistorico">Provedor dos históricos.</param>
        public MonitorNotaFiscal(
            Colosoft.Domain.IDomainEvents domainEvents,
            Colosoft.Logging.ILogger logger,
            ConfiguracaoKhan configuracao,
            Historico.IProvedorHistorico provedorHistorico)
            : base(domainEvents)
        {
            this.logger            = logger;
            this.configuracao      = configuracao;
            this.provedorHistorico = provedorHistorico;
            this.AdicionarToken <Data.Domain.NotaFiscalGerada>(
                domainEvents.GetEvent <Data.Domain.NotaFiscalGerada>().Subscribe(this.NotaFiscalGerada));

            Colosoft.Net.ServiceClientsManager.Current.Register(this.pedidoServiceUid, this.CriarPedidoClient);
            Colosoft.Net.ServiceClientsManager.Current.Register(this.consultasServciceUid, this.CriarConsultasClient);
        }
Example #9
0
 /// <summary>
 /// Carrega os metadados da propriedade nesse tipo
 /// </summary>
 /// <param name="property">Propriedade a ser carregada</param>
 /// <param name="logger"></param>
 internal void AddPropertyMetadata(PropertyMetadata property, Colosoft.Logging.ILogger logger)
 {
     if (property.TypeCode != this.TypeCode)
     {
         throw new Exception(ResourceMessageFormatter.Create(() => global::Colosoft.Data.Schema.Server.Properties.Resources.PropertyAndTypeNotMatched, property.Name, this.Name).Format());
     }
     try
     {
         _propertiesDictionaryKeyFullname.Add(property.Name, property);
     }
     catch (ArgumentException ex)
     {
         logger.Write(ResourceMessageFormatter.Create(() => global::Colosoft.Data.Schema.Server.Properties.Resources.PropertyAlreadyExistsTypeMetadata, property.Name, this.Namespace + this.Name), ex, Logging.Priority.High);
     }
     _propertiesDictionaryKeyPropertyCode.Add(property.PropertyCode, property);
     if (property.ParameterType == PersistenceParameterType.IdentityKey || property.ParameterType == PersistenceParameterType.Key)
     {
         _keyPropertiesList.Add(property);
     }
 }
Example #10
0
        /// <summary>
        /// Inicializa os integradores.
        /// </summary>
        /// <param name="logger">Logger que será usado na operação.</param>
        /// <returns>True se a inicialização foi bem sucedida.</returns>
        public async Task <bool> Inicializar(Colosoft.Logging.ILogger logger)
        {
            IEnumerable <IIntegrador> integradoresDisponiveis;

            try
            {
                integradoresDisponiveis = await this.provedor.ObterIntegradoresDisponiveis();
            }
            catch (Exception ex)
            {
                logger.Error("Não foi possível carrega os integradores disponíveis".GetFormatter(), ex);
                return(false);
            }

            var inicializacaoSucedida = true;

            foreach (var integrador in integradoresDisponiveis)
            {
                if (integrador.Ativo)
                {
                    try
                    {
                        await integrador.Setup();

                        this.integradores.Add(integrador);
                    }
                    catch (Exception ex)
                    {
                        logger.Error($"Ocorreu um erro no setup do integrador {integrador.Nome}".GetFormatter(), ex);
                        inicializacaoSucedida = false;
                        integrador.Dispose();
                    }
                }
            }

            return(inicializacaoSucedida);
        }
Example #11
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="MonitorCondicoesPagamentoJob"/>.
 /// </summary>
 /// <param name="monitor">Monitor das condições de pagamento.</param>
 /// <param name="logger">Logger.</param>
 public MonitorCondicoesPagamentoJob(MonitorCondicoesPagamento monitor, Colosoft.Logging.ILogger logger)
 {
     this.monitor = monitor;
     this.logger  = logger;
 }
Example #12
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="logger">Recebe o seviço de login</param>
 public TypeSchema(Colosoft.Logging.ILogger logger)
 {
     _logger  = logger;
     _allDone = new System.Threading.ManualResetEvent(false);
     BeginLoadTableAndPropertyData();
 }
Example #13
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="GerenciadorOperacaoIntegracao"/>.
 /// </summary>
 /// <param name="logger">Logger que será usado pela instância.</param>
 public GerenciadorOperacaoIntegracao(Colosoft.Logging.ILogger logger)
 {
     this.logger = logger;
 }
Example #14
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="MonitorIndicadoresFinanceirosJob"/>.
 /// </summary>
 /// <param name="monitor">Monitor base.</param>
 /// <param name="logger">Logger.</param>
 public MonitorIndicadoresFinanceirosJob(MonitorIndicadoresFinanceiros monitor, Colosoft.Logging.ILogger logger)
 {
     this.monitor = monitor;
     this.logger  = logger;
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="dataCacheManager"></param>
 /// <param name="cacheDataSource"></param>
 /// <param name="serverDataSource"></param>
 /// <param name="typeSchema"></param>
 /// <param name="keyFactory"></param>
 /// <param name="logger"></param>
 public QueryDataSourceSelector(Lazy <Colosoft.Data.Caching.IDataCacheManager> dataCacheManager, Lazy <Query.IQueryDataSource> cacheDataSource, Lazy <Query.IQueryDataSource> serverDataSource, Lazy <Colosoft.Data.Schema.ITypeSchema> typeSchema, Lazy <Colosoft.Query.IRecordKeyFactory> keyFactory, Colosoft.Logging.ILogger logger)
 {
     dataCacheManager.Require("dataCacheManager").NotNull();
     cacheDataSource.Require("cacheDataSource").NotNull();
     serverDataSource.Require("serverDataSource").NotNull();
     typeSchema.Require("typeSchema").NotNull();
     keyFactory.Require("keyFactory").NotNull();
     _dataCacheManager       = dataCacheManager;
     _cacheDataSource        = cacheDataSource;
     _serverDataSource       = serverDataSource;
     _dynamicQueryDataSource = new Dynamic.DynamicQueryDataSource(_serverDataSource, dataCacheManager, typeSchema, keyFactory, logger);
 }
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="serverQueryDataSource">Instancia da origem de ados do query do servidor.</param>
 /// <param name="dataCacheManager">Instancia do gerenciadoir de dados do cache.</param>
 /// <param name="typeSchema">Instancia com os esquemas dos tipos do sistema.</param>
 /// <param name="keyFactory">Instacia da factory das chaves.</param>
 /// <param name="logger">Instancia resposável pelo registro dos logs.</param>
 public DynamicQueryDataSource(Lazy <IQueryDataSource> serverQueryDataSource, Lazy <Colosoft.Data.Caching.IDataCacheManager> dataCacheManager, Lazy <Colosoft.Data.Schema.ITypeSchema> typeSchema, Lazy <Colosoft.Query.IRecordKeyFactory> keyFactory, Colosoft.Logging.ILogger logger)
 {
     serverQueryDataSource.Require("serverQueryDataSource").NotNull();
     dataCacheManager.Require("dataCacheManager").NotNull();
     typeSchema.Require("typeSchema").NotNull();
     keyFactory.Require("keyFactory").NotNull();
     _serverQueryDataSource = serverQueryDataSource;
     _dataCacheManager      = dataCacheManager;
     _typeSchema            = typeSchema;
     _keyFactory            = keyFactory;
 }
Example #17
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="SinronizadorTodosProdutosJob"/>.
 /// </summary>
 /// <param name="monitorProdutos">Monitor dos produtos.</param>
 /// <param name="logger">Logger.</param>
 public SinronizadorTodosProdutosJob(MonitorProdutos monitorProdutos, Colosoft.Logging.ILogger logger)
 {
     this.monitorProdutos = monitorProdutos;
     this.logger          = logger;
 }
Example #18
0
        void IEvictionPolicy.Execute(CacheBase cache, CacheRuntimeContext context, long evictSize)
        {
            Colosoft.Logging.ILogger Logger = cache.Context.Logger;
            if (Logger.IsInfoEnabled)
            {
                Logger.Info(("Cache Size: {0}" + cache.Count.ToString()).GetFormatter());
            }
            _sleepInterval    = ServiceConfiguration.EvictionBulkRemoveDelay;
            _removeThreshhold = ServiceConfiguration.EvictionBulkRemoveSize;
            DateTime  now          = DateTime.Now;
            ArrayList selectedKeys = this.GetSelectedKeys(cache, (long)Math.Ceiling((double)(evictSize * _ratio)));
            DateTime  time2        = DateTime.Now;

            if (Logger.IsInfoEnabled)
            {
                Logger.Info(string.Format("Time Span for {0} Items: " + ((TimeSpan)(time2 - now)), selectedKeys.Count).GetFormatter());
            }
            now = DateTime.Now;
            Cache       cacheRoot  = context.CacheRoot;
            ArrayList   list2      = new ArrayList();
            ArrayList   list3      = new ArrayList();
            ArrayList   c          = null;
            IEnumerator enumerator = selectedKeys.GetEnumerator();
            int         num        = _removeThreshhold / 300;
            int         num2       = 0;

            while (enumerator.MoveNext())
            {
                object current = enumerator.Current;
                if (current != null)
                {
                    list2.Add(current);
                    if ((list2.Count % 300) == 0)
                    {
                        try
                        {
                            c = cache.RemoveSync(list2.ToArray(), ItemRemoveReason.Underused, false, new OperationContext(OperationContextFieldName.OperationType, OperationContextOperationType.CacheOperation)) as ArrayList;
                        }
                        catch (Exception exception)
                        {
                            Logger.Error("PriorityEvictionPolicy.Execute".GetFormatter(), ("an error occured while removing items. Error " + exception.ToString()).GetFormatter());
                        }
                        list2.Clear();
                        if ((c != null) && (c.Count > 0))
                        {
                            list3.AddRange(c);
                        }
                        num2++;
                        if (num2 >= num)
                        {
                            System.Threading.Thread.Sleep((int)(_sleepInterval * 0x3e8));
                            num2 = 0;
                        }
                    }
                }
            }
            if (list2.Count > 0)
            {
                try
                {
                    c = cache.RemoveSync(list2.ToArray(), ItemRemoveReason.Underused, false, new OperationContext(OperationContextFieldName.OperationType, OperationContextOperationType.CacheOperation)) as ArrayList;
                    if ((c != null) && (c.Count > 0))
                    {
                        list3.AddRange(c);
                    }
                }
                catch (Exception exception2)
                {
                    Logger.Error("PriorityEvictionPolicy.Execute".GetFormatter(), ("an error occured while removing items. Error " + exception2.ToString()).GetFormatter());
                }
            }
            if (list3.Count > 0)
            {
                ArrayList list5 = new ArrayList();
                if (cacheRoot != null)
                {
                    foreach (object obj3 in list3)
                    {
                        if (obj3 != null)
                        {
                            list5.Add(obj3);
                            if ((list5.Count % 100) == 0)
                            {
                                try
                                {
                                    cacheRoot.CascadedRemove(list5.ToArray(), ItemRemoveReason.Underused, true, new OperationContext(OperationContextFieldName.OperationType, OperationContextOperationType.CacheOperation));
                                }
                                catch (Exception exception3)
                                {
                                    Logger.Error("PriorityEvictionPolicy.Execute".GetFormatter(), ("an error occured while removing dependent items. Error " + exception3.ToString()).GetFormatter());
                                }
                                list5.Clear();
                            }
                        }
                    }
                    if (list5.Count > 0)
                    {
                        try
                        {
                            cacheRoot.CascadedRemove(list5.ToArray(), ItemRemoveReason.Underused, true, new OperationContext(OperationContextFieldName.OperationType, OperationContextOperationType.CacheOperation));
                        }
                        catch (Exception exception4)
                        {
                            Logger.Error("PriorityEvictionPolicy.Execute".GetFormatter(), ("an error occured while removing dependent items. Error " + exception4.ToString()).GetFormatter());
                        }
                        list5.Clear();
                    }
                }
            }
        }
Example #19
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="logger"></param>
 public LoggerAssemblyRepositoryCatalogObserver(Colosoft.Logging.ILogger logger)
 {
     logger.Require("logger").NotNull();
     _logger = logger;
 }
Example #20
0
 /// <summary>
 /// Inicia uma nova instância da classe <see cref="MonitorNotaFiscalJob"/>.
 /// </summary>
 /// <param name="monitor">Monitor base.</param>
 /// <param name="logger">Logger.</param>
 public MonitorNotaFiscalJob(MonitorNotaFiscal monitor, Colosoft.Logging.ILogger logger)
 {
     this.monitor = monitor;
     this.logger  = logger;
 }
Example #21
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="logger"></param>
 public BusinessValidationManager(Colosoft.Logging.ILogger logger) : base(logger)
 {
 }