Ejemplo n.º 1
0
        /// <summary>
        /// Elimina un seriovicio del repositorio y del origen de metadata de servicios.-
        /// </summary>
        /// <param name="providerName">Nombre del proveedor de metadata de servicios.-</param>
        /// <param name="serviceName">Nombre del servicio</param>
        public static void DeleteServiceConfiguration(string providerName, string serviceName)
        {
            ServiceProviderElement provider = GetProvider(providerName);

            ServiceConfigurationCollection svcList = GetAllServices(provider);

            if (!svcList.Exists(serviceName, provider.ApplicationId))
            {
                Exceptions.TechnicalException te = new Exceptions.TechnicalException(string.Format("El servicio {0} no se encuentra configurado.\r\nProveedor de Metadata: {1}\r\nApplicationId: {2}\r\n", serviceName, provider.Name, provider.ApplicationId));
                te.ErrorId = "7002";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException <ServiceMetadata>(te);

                throw te;
            }
            ServiceConfiguration wServiceConfigurationEnMemoria = svcList.GetServiceConfiguration(serviceName, provider.ApplicationId);

            svcList.Remove(wServiceConfigurationEnMemoria);

            if (provider.ProviderType == ServiceProviderType.xml)
            {
                XmlServiceConfigurationManager.DeleteServiceConfiguration(provider.SourceInfo, svcList);
            }
            else
            {
                DatabaseServiceConfigurationManager.DeleteServiceConfiguration(serviceName, provider.ApplicationId, provider.SourceInfo);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        public static void RefreshServices()
        {
            ServiceConfigurationCollection svcList = null;

            foreach (ServiceProviderElement provider in _ProviderSection.Providers)
            {
                _Repository.Remove(provider.Name);
                if (provider.ProviderType == ServiceProviderType.xml)
                {
                    svcList = XmlServiceConfigurationManager.GetAllServices(provider.SourceInfo);
                }
                if (provider.ProviderType == ServiceProviderType.sqldatabase)
                {
                    svcList = DatabaseServiceConfigurationManager.GetAllServices(provider.ApplicationId, provider.SourceInfo);
                }

                try
                {
                    //Se agrega try cath debido a que un subproseso pueda intentar agregar un item y aexistente
                    _Repository.Add(provider.Name, svcList);
                }
                catch (Exception)
                { }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Crea un servicio en el origen de datos indicado por el proveedor
        /// El aaplication Id que se utiliza es el del  nuevo servicio. Si el provedor estra configurado para usar uno determinado este se ignora
        /// de esta manera un proveedor puede insertar servicios para diferentes aplicaciones
        /// </summary>
        /// <param name="providerName">Nombre del proveedor de metadata de servicios.-</param>
        /// <param name="pServiceConfiguration"><see cref="ServiceConfiguration"/></param>
        public static void AddServiceConfiguration(string providerName, ServiceConfiguration pServiceConfiguration)
        {
            ServiceProviderElement provider = GetProvider(providerName);

            ServiceConfigurationCollection svcList = GetAllServices(provider);

            if (svcList.Exists(pServiceConfiguration.Name, pServiceConfiguration.ApplicationId))
            {
                Exceptions.TechnicalException te = new Exceptions.TechnicalException(string.Format("El servicio {0} ya existe.\r\nProveedor de Metadata: {1}\r\nApplicationId: {2}\r\n", pServiceConfiguration.Name, provider.Name, provider.ApplicationId));
                te.ErrorId = "7002";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException <ServiceMetadata>(te);
                throw te;
            }



            svcList.Add(pServiceConfiguration);

            if (provider.ProviderType == ServiceProviderType.xml)
            {
                XmlServiceConfigurationManager.AddServiceConfiguration(pServiceConfiguration, provider.SourceInfo, svcList);
            }
            else
            {
                DatabaseServiceConfigurationManager.AddServiceConfiguration(pServiceConfiguration, pServiceConfiguration.ApplicationId, provider.SourceInfo);
            }
        }
Ejemplo n.º 4
0
        ///date:2013-03-02 No se utilizara la actualizacion
        //private static FileSystemWatcher watcher;

        /// <summary>
        /// Obtiene todos los servicios del proveedor de metadata
        /// </summary>
        /// <param name="provider">Proveedor de la metadata</param>
        /// <returns></returns>
        public static ServiceConfigurationCollection GetAllServices(ServiceProviderElement provider)
        {
            ServiceConfigurationCollection svcList = null;

            //Si no esta cargado el provider en el repositorio
            if (!_Repository.ContainsKey(provider.Name))
            {
                #region xml

                ///date:2013-03-02 No se utilizara la actualizacion
                if (provider.ProviderType == ServiceProviderType.xml)
                {
                    //{
                    svcList = XmlServiceConfigurationManager.GetAllServices(provider.SourceInfo);
                }

                //    //Habilito FileSystemWatcher para detectar cualquie cambio sobre la metadata
                //    watcher = new System.IO.FileSystemWatcher();
                //    watcher.Filter = provider.SourceInfo;

                //    watcher.Path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location;
                //    watcher.EnableRaisingEvents = true;

                //    watcher.Changed += new FileSystemEventHandler(watcher_Changed);

                //}
                #endregion

                #region sqldatabase
                if (provider.ProviderType == ServiceProviderType.sqldatabase)
                {
                    svcList = DatabaseServiceConfigurationManager.GetAllServices(provider.ApplicationId, provider.SourceInfo);
                }
                #endregion
                try
                {
                    ///Se agrega try cath debido a que un subproseso pueda intentar agregar un item y aexistente
                    _Repository.Add(provider.Name, svcList);
                }
                catch (Exception)
                { }
            }
            else
            {
                svcList = _Repository[provider.Name];
            }

            return(svcList);
        }