/// <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);
            }
        }
        /// <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);
            }
        }
Exemple #3
0
        void LoadAssembly()
        {
            try
            {
                Assembly wAssembly = new Assembly(_StorageFactory.StorageObject.AssemblyPath);
                Fwk.Bases.ServiceConfiguration           s    = null;
                Fwk.Bases.ServiceConfigurationCollection list = new Fwk.Bases.ServiceConfigurationCollection();
                lblFileName.Text = _StorageFactory.StorageObject.AssemblyPath;

                foreach (AssemblyClass wAssemblyClass in wAssembly.ClassCollections)
                {
                    if (wAssemblyClass.BaseType != null)
                    {
                        if (wAssemblyClass.BaseType.Name.Contains("BusinessService"))
                        {
                            if (!Services.Exists(p => p.Name.Equals(wAssemblyClass.Name.Trim())))
                            {
                                s = new Fwk.Bases.ServiceConfiguration();
                                //Service name
                                s.Name    = wAssemblyClass.Name;
                                s.Handler = wAssemblyClass.FullyQualifiedName;
                                //Request
                                s.Request = wAssemblyClass.Methods[0].Parameters[0].ParameterType.AssemblyQualifiedName;

                                //Response
                                s.Response = wAssemblyClass.Methods[0].ReturnType.AssemblyQualifiedName;

                                list.Add(s);
                            }
                        }
                    }
                }

                var ordenedList = from x in list orderby x.Name select x;
                serviceConfigurationCollectionBindingSource.DataSource = ordenedList;
            }
            catch (System.Reflection.ReflectionTypeLoadException rx)
            {
                base.ExceptionViewer.Show(rx.LoaderExceptions, "Service Management:. Loading assembly");
                _StorageFactory.Clear();
            }
            catch (Exception ex)
            {
                base.ExceptionViewer.Show(ex);
                _StorageFactory.StorageObject.AssemblyPath = string.Empty;
                _StorageFactory.Save();
            }
        }