Esempio n. 1
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)
                { }
            }
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        ///date:2013-03-02 No se utilizara la actualizacion
        ///// <summary>
        ///// Si algun cambio ocurre en el archivo de metadata de algun proveedor xml
        ///// </summary>
        ///// <param name="sender"></param>
        ///// <param name="e"></param>
        //static void watcher_Changed(object sender, FileSystemEventArgs e)
        //{
        //    try
        //    {
        //        //Busco todos los providers que esten asociados al mismo archivo. Esta es una situacion muy rara pero podria darce
        //        foreach (ServiceProviderElement provider in _ProviderSection.Providers)
        //        {
        //            if (e.Name.Equals(provider.SourceInfo) && provider.ProviderType == ServiceProviderType.xml)
        //                ReloadAllServices(provider);
        //        }
        //    }
        //    catch (TechnicalException ex)
        //    {
        //        Fwk.Logging.Event ev = new Event();
        //        ev.LogType = EventType.Error;
        //        ev.Machine = ex.Machine;
        //        ev.User = ex.UserName;
        //        String str = string.Concat(
        //            "Se intento modificar la metadata de servicios y se arrojó el siguiente error \r\n",
        //            Fwk.Exceptions.ExceptionHelper.GetAllMessageException(ex),
        //            "\r\n la metadata se encuentra en: \r\n",
        //            e.FullPath);

        //        ev.Message.Text = str;

        //        Fwk.Logging.StaticLogger.Log(Fwk.Logging.Targets.TargetType.WindowsEvent, ev, null, null);

        //    }
        //}

        /// <summary>
        /// Este metodo elimina quita la lista de servicios del provider en el repositorio deservicios y
        /// los vuelve a cargar desde su origen
        /// </summary>
        /// <param name="provider">Proveedor de metadata</param>
        static void ReloadAllServices(ServiceProviderElement provider)
        {
            ///date:2013-03-02 No se utilizara la actualizacion
            //_Repository.Remove(provider.Name);

            if (provider.ProviderType == ServiceProviderType.xml)
            {
                ServiceConfigurationCollection 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.Reflection.Assembly.GetExecutingAssembly().Location;
                //watcher.EnableRaisingEvents = true;

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