Exemplo n.º 1
0
        /// <summary>
        /// Adiciona um novo endereço de serviço para a configuração do sistema.
        /// </summary>
        /// <param name="address">Endereço que será adicionado.</param>
        /// <param name="servicesContext">Contexto de serviços associado.</param>
        /// <param name="ignoreReset">Identifica se é para ignorar o reset do endereço.</param>
        /// <returns></returns>
        public bool Add(ServiceAddress address, string servicesContext, bool ignoreReset)
        {
            address.Require("address").NotNull();
            var key = new ServiceAddressKey(address.Name, servicesContext, ignoreReset);
            ServicesConfigurationEntry entry = null;

            lock (_serviceAddress)
            {
                if (_serviceAddress.ContainsKey(key))
                {
                    return(false);
                }
                entry = new ServicesConfigurationEntry(address, servicesContext);
                _serviceAddress.Add(key, entry);
            }
            OnAdded(address.Name, entry);
            return(true);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Atualiza os dados do endereço de serviço informado.
        /// </summary>
        /// <param name="address">Instacia do endereço que será atualizada.</param>
        /// <param name="servicesContext">Contexto de serviços.</param>
        /// <returns>True caso o endereço tenha sido atualizado.</returns>
        public bool Update(ServiceAddress address, string servicesContext)
        {
            address.Require("address").NotNull();
            var key = new ServiceAddressKey(address.Name, servicesContext);
            ServicesConfigurationEntry entry = null;

            lock (_serviceAddress)
            {
                if (_serviceAddress.ContainsKey(key))
                {
                    _serviceAddress.Remove(key);
                    entry = new ServicesConfigurationEntry(address, servicesContext);
                    _serviceAddress.Add(key, entry);
                }
            }
            if (entry != null)
            {
                OnUpdated(key.Name, entry);
                return(true);
            }
            return(false);
        }