public void OpenForm() { string wAssemblyInfo = String.Concat(new string[] { _FormClassName, ", ", _FormAssemblyName }); try { //Obtener la instancia del Formulario using (FrmBase f = (FrmBase)ReflectionFunctions.CreateInstance(wAssemblyInfo)) { //Busco en el archivo Configuration Manager el nombre de ensamblado, namespace y clase para crear diamicamente //FrontClientes.frmModificacion , FrontClientes" f.WindowState = _FormWindowState; f.StartPosition = _FormStartPosition; if (_EntityParam != null) { f.EntityParam = _EntityParam; } f.ShowDialog(); if (f.EntityResult != null) { _EntityResult = f.EntityResult; } } OnCloseFormEvent(); } catch (Exception ex) { throw ex; } }
/// <summary> /// Ejecuta un servicio de negocio. /// </summary> /// <param name="providerName">Nombre del proveedor de metadata de servicios.-</param> /// <param name="serviceName">Nombre del servicio de negocio.</param> /// <param name="pXmlRequest">XML con datos de entrada para la ejecución del servicio.</param> /// <returns>XML con el resultado de la ejecución del servicio.</returns> /// <date>2008-04-07T00:00:00</date> /// <author>moviedo</author> public static string ExecuteService(string providerName, string serviceName, string pXmlRequest) { string wResult; ServiceConfiguration wServiceConfiguration = FacadeHelper.GetServiceConfiguration(providerName, serviceName); IServiceContract wRequest = (IServiceContract)ReflectionFunctions.CreateInstance(wServiceConfiguration.Request); if (wRequest == null) { TechnicalException te = new TechnicalException(string.Concat("El despachador de servicio no pudo continuar debido\r\na que no logro construir el requets del servicio: ", serviceName, "\r\nVerifique que se encuentre los componentes necesarios para su ejecucion esten en el servidor de aplicación. ")); Fwk.Exceptions.ExceptionHelper.SetTechnicalException <StaticFacade>(te); if (string.IsNullOrEmpty(ConfigurationsHelper.HostApplicationName)) { te.Source = "Despachador de servicios en " + Environment.MachineName; } else { te.Source = ConfigurationsHelper.HostApplicationName; } te.ErrorId = "7003"; throw te; } wRequest.SetXml(pXmlRequest); wResult = ExecuteService(providerName, wRequest).GetXml(); return(wResult); }
/// <summary> /// Obtiene un objeto Response :: IServiceContract /// </summary> /// <param name="pServiceConfiguration"><see cref="ServiceConfiguration"/></param> /// <returns>IServiceContract</returns> static IServiceContract GetResponse(ServiceConfiguration pServiceConfiguration) { IServiceContract wResponse; try { wResponse = (IServiceContract)ReflectionFunctions.CreateInstance(pServiceConfiguration.Response); if (wResponse == null) { System.Text.StringBuilder wMessage = new StringBuilder(); wMessage.Append("El servicio " + pServiceConfiguration.Handler); wMessage.AppendLine(" no se puede ejecutar debido a que esta faltando el assembly "); wMessage.Append(pServiceConfiguration.Response); wMessage.Append(" en el despachador de servicio"); throw GetTechnicalException(wMessage.ToString(), "7003", null); } } catch (Exception ex) { System.Text.StringBuilder wMessage = new StringBuilder(); wMessage.Append("El servicio " + pServiceConfiguration.Handler); wMessage.AppendLine(" no se puede ejecutar debido a que esta faltando el assembly "); wMessage.Append(pServiceConfiguration.Response); wMessage.Append(" en el despachador de servicio"); throw GetTechnicalException(wMessage.ToString(), "7003", ex); } return(wResponse); }
/// <summary> /// Ejecuta el servicio de negocio. /// </summary> /// <param name="pData">XML con datos de entrada.</param> /// <param name="pServiceConfiguration">configuración del servicio.</param> /// <param name="pserviError"></param> /// <returns>XML que representa el resultado de la ejecución del servicio.</returns> /// <date>2007-08-07T00:00:00</date> /// <author>moviedo</author> static string RunService(string pData, ServiceConfiguration pServiceConfiguration, out ServiceError pserviError) { IServiceContract wRequest = null; IServiceContract wResponse = null; // Obtencion del Request. wRequest = (IServiceContract)ReflectionFunctions.CreateInstance(pServiceConfiguration.Request); if (wRequest == null) { System.Text.StringBuilder wMessage = new StringBuilder(); wMessage.Append("Verifique que este assemblie se encuentra en el host del despachador de servicios"); wMessage.Append("El servicio " + pServiceConfiguration.Handler); wMessage.AppendLine(" no se puede ejecutar debido a que esta faltando el assembly "); wMessage.Append(pServiceConfiguration.Request); wMessage.Append(" en el despachador de servicio"); throw GetTechnicalException(wMessage.ToString(), "7002", null); } wRequest.SetXml(pData); wRequest.InitializeServerContextInformation(); wResponse = RunService(wRequest, pServiceConfiguration, out pserviError); return(wResponse.GetXml()); }
/// <summary> /// Inicializa un wrapper deacuerdo el nombre del proveedor /// Carga al wrapper el nombre /// </summary> /// <param name="providerName">Proveedor del wrapper. Este valor debe coincidir con un proveedor de metadata en el dispatcher</param> internal static void InitWrapper(string providerName) { //Si no se espesifica npmbre de provdor se da por entendido que se trata de un proveedor por defecto if (String.IsNullOrEmpty(providerName)) { providerName = _DefaultProviderName; } if (!_WraperPepository.ContainsKey(providerName)) { try { WrapperProviderElement provider = _ProviderSection.GetProvider(providerName); if (provider == null) { TechnicalException te; if (providerName.Equals(_DefaultProviderName)) { te = new TechnicalException(string.Concat("El proveedor de configuración del wrapper por defecto del lado del cliente, no existe, verifique en el archivo de configuracion si existe la seccion FwkWrapper y el proveedor por defecto")); } else { te = new TechnicalException(string.Concat("El proveedor de configuración del wrapper ", providerName, " del lado del cliente, no existe, verifique en el archivo de configuracion si existe la seccion FwkWrapper y el proveedor mencionado")); } te.ErrorId = "6000"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(WrapperFactory)); throw te; } ///No se almacenan mas providers con String.Empty //if (provider.Name.Equals(_ProviderSection.DefaultProviderName)) providerName = String.Empty; IServiceWrapper w = (IServiceWrapper)ReflectionFunctions.CreateInstance(provider.WrapperProviderType); w.ProviderName = provider.Name; w.SourceInfo = provider.SourceInfo; w.ServiceMetadataProviderName = provider.ServiceMetadataProviderName; w.AppId = provider.AppId; //w.DefaultCulture = provider.DefaultCulture; _WraperPepository.Add(providerName, w); } catch (Exception ex) { ServiceError wServiceError = ProcessConnectionsException.Process(ex); TechnicalException te = new TechnicalException(wServiceError.Assembly, wServiceError.Namespace, wServiceError.Class, wServiceError.Machine, wServiceError.UserName, wServiceError.Message, ex); throw te; } } }
/// <summary> /// Instancia y retorna un objeto tipo T.- /// </summary> /// <returns></returns> public T GetObject() { if (_SomeObject == null) { if (_ConstructorParams == null) { _SomeObject = (T)ReflectionFunctions.CreateInstance(string.Concat(typeof(T).FullName, ",", typeof(T).Assembly.FullName)); } else { _SomeObject = (T)ReflectionFunctions.CreateInstance(string.Concat(typeof(T).FullName, ",", typeof(T).Assembly.FullName), _ConstructorParams); } } return(_SomeObject); }
IServiceContract Try_get_IServiceContract(string providerName, ServiceConfiguration serviceConfiguration) { try { IServiceContract wRequest = (IServiceContract)ReflectionFunctions.CreateInstance(serviceConfiguration.Request); if (wRequest == null) { throw get_TechnicalException_error_loading_req(serviceConfiguration, null); } return(wRequest); } catch (Exception ex) { throw get_TechnicalException_error_loading_req(serviceConfiguration, ex); } }
/// <summary> /// Levanta la seccion FwkWrapper.- /// Inicialisa el repositorio de wrappers. (no lo llena con los wrappers) /// </summary> static WrapperFactory() { try { //Obtiene la la configuracion del wrapper del archivo .config _ProviderSection = ConfigurationManager.GetSection("FwkWrapper") as WrapperProviderSection; if (_ProviderSection == null) { TechnicalException te = new TechnicalException(string.Concat("No se puede cargar la configuracion del wrapper en el cliente, verifique si existe la seccion [FwkWrapper] en el archivo de configuracion.")); te.ErrorId = "6000"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(WrapperFactory)); throw te; } _WraperPepository = new Dictionary <string, IServiceWrapper>(); _DefaultProviderName = _ProviderSection.DefaultProviderName; IServiceWrapper w = null; foreach (WrapperProviderElement provider in _ProviderSection.Providers) { w = (IServiceWrapper)ReflectionFunctions.CreateInstance(provider.WrapperProviderType); if (w == null) { TechnicalException te = new TechnicalException(string.Concat("No existe el tipo de wrapper: ", provider.WrapperProviderType)); te.ErrorId = "6000"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(WrapperFactory)); throw te; } w.ProviderName = provider.Name; w.SourceInfo = provider.SourceInfo; w.ServiceMetadataProviderName = provider.ServiceMetadataProviderName; w.AppId = provider.AppId; //w.DefaultCulture = provider.DefaultCulture; //if (provider.Name.Equals(_DefaultProviderName)) // _WraperPepository.Add(String.Empty, w); //else _WraperPepository.Add(provider.Name, w); } } catch (System.Configuration.ConfigurationErrorsException ex) { TechnicalException te = new TechnicalException(string.Concat("No se puede cargar la configuracion del wrapper en el cliente, verifique si existe la seccion [FwkWrapper] en el archivo de configuracion."), ex); te.ErrorId = "6000"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(WrapperFactory)); throw te; } }