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