示例#1
0
        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;
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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());
        }
示例#5
0
        /// <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;
                }
            }
        }
示例#6
0
 /// <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);
 }
示例#7
0
 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);
     }
 }
示例#8
0
        /// <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;
            }
        }