/// <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); }
/// <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); }