private void ProcessProperty()
 {
     if (isQueryParameter)
     {
         queryParameter.AddProperty(propertyName, tempValue.ToString());
     }
     else if (isHeaderParameter)
     {
         headerParameter.AddProperty(propertyName, tempValue.ToString());
     }
     else if (isRequest)
     {
         request.AddProperty(propertyName, tempValue.ToString());
     }
     else
     {
         serviceDescriptor.AddProperty(propertyName, tempValue.ToString());
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// It handles the service request
        /// </summary>
        /// <param name="service">Service instance</param>
        /// <exception cref="Siminov.Connect.Exception.ServiceException">If any exception occur while handling the service request</exception>
        public void Handle(IService service)
        {
            ServiceDescriptor serviceDescriptor = service.GetServiceDescriptor();

            if (serviceDescriptor == null)
            {
                serviceDescriptor = resourceManager.RequiredServiceDescriptorBasedOnName(service.GetService());
                service.SetServiceDescriptor(serviceDescriptor);
            }


            IEnumerator <String> resources = service.GetResources();

            while (resources.MoveNext())
            {
                String resourceName  = resources.Current;
                Object resourceValue = service.GetResource(resourceName);

                if (resourceValue is String)
                {
                    serviceDescriptor.AddProperty(resourceName, (String)resourceValue);
                }
            }


            Connect.Model.ServiceDescriptor.Request request = serviceDescriptor.GetRequest(service.GetRequest());
            var serviceDescriptors = new List <Core.Model.IDescriptor>();

            serviceDescriptors.Add(serviceDescriptor);

            String mode = ResourceUtils.Resolve(request.GetMode(), serviceDescriptors.ToArray());

            if (mode.Equals(Constants.SERVICE_DESCRIPTOR_REQUEST_SYNC_REQUEST_MODE, StringComparison.OrdinalIgnoreCase))
            {
                ResourceUtils.Resolve(service);
                syncServiceWorker.Process(service);
            }
            else if (mode.Equals(Constants.SERVICE_DESCRIPTOR_REQUEST_ASYNC_REQUEST_MODE, StringComparison.OrdinalIgnoreCase))
            {
                asyncServiceWorker.AddRequest(service);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// It resolve service descriptor instance
        /// </summary>
        /// <param name="service">Service instance</param>
        /// <exception cref="Siminov.Connect.Exception.ServiceException">If any exception occur while resolving dynamic resources</exception>
        public static void Resolve(IService service)
        {
            /*
             * Resolve Service Descriptor Properties
             */
            ServiceDescriptor serviceDescriptor = service.GetServiceDescriptor();

            IEnumerator <String> resources = service.GetResources();

            while (resources.MoveNext())
            {
                String resourceName  = resources.Current;
                Object resourceValue = service.GetResource(resourceName);

                if (resourceValue is String)
                {
                    serviceDescriptor.AddProperty(resourceName, (String)resourceValue);
                }
            }


            IEnumerator <String>         serviceDescriptorProperties        = serviceDescriptor.GetProperties();
            IDictionary <String, String> changedServiceDescriptorProperties = new Dictionary <String, String>();

            while (serviceDescriptorProperties.MoveNext())
            {
                String serviceDescriptorProperty = serviceDescriptorProperties.Current;
                String serviceDescriptorValue    = serviceDescriptor.GetProperty(serviceDescriptorProperty);

                var serviceDescriptors = new List <IDescriptor>();
                serviceDescriptors.Add(serviceDescriptor);

                serviceDescriptorValue = ResourceUtils.Resolve(serviceDescriptorValue, serviceDescriptors.ToArray());

                changedServiceDescriptorProperties.Add(serviceDescriptorProperty, serviceDescriptorValue);
            }

            foreach (String changedServiceDescriptorProperty in changedServiceDescriptorProperties.Keys)
            {
                serviceDescriptor.AddProperty(changedServiceDescriptorProperty, changedServiceDescriptorProperties[changedServiceDescriptorProperty]);
            }


            /*
             * Resolve API Properties
             */
            Connect.Model.ServiceDescriptor.Request request   = serviceDescriptor.GetRequest(service.GetRequest());
            IEnumerator <String>         apiProperties        = request.GetProperties();
            IDictionary <String, String> changedApiProperties = new Dictionary <String, String>();

            while (apiProperties.MoveNext())
            {
                String apiProperty = apiProperties.Current;
                String apiValue    = request.GetProperty(apiProperty);

                var serviceDescriptors = new List <IDescriptor>();
                serviceDescriptors.Add(serviceDescriptor);

                apiValue = ResourceUtils.Resolve(apiValue, serviceDescriptors.ToArray());

                changedApiProperties.Add(apiProperty, apiValue);
            }

            foreach (String changedApiProperty in changedApiProperties.Keys)
            {
                request.AddProperty(changedApiProperty, changedApiProperties[changedApiProperty]);
            }

            /*
             * Resolve API Query Parameters
             */
            IEnumerator <Connect.Model.ServiceDescriptor.Request.QueryParameter> queryParameters = request.GetQueryParameters();

            while (queryParameters.MoveNext())
            {
                Connect.Model.ServiceDescriptor.Request.QueryParameter queryParameter = queryParameters.Current;

                String queryValue = queryParameter.GetValue();

                var serviceDescriptors = new List <IDescriptor>();
                serviceDescriptors.Add(serviceDescriptor);

                queryValue = ResourceUtils.Resolve(queryValue, serviceDescriptors.ToArray());

                queryParameter.SetValue(queryValue);
            }


            /*
             * Resolve API Query Parameters
             */
            IEnumerator <Connect.Model.ServiceDescriptor.Request.HeaderParameter> headerParameters = request.GetHeaderParameters();

            while (headerParameters.MoveNext())
            {
                Connect.Model.ServiceDescriptor.Request.HeaderParameter headerParameter = headerParameters.Current;

                String headerValue = headerParameter.GetValue();

                var serviceDescriptors = new List <IDescriptor>();
                serviceDescriptors.Add(serviceDescriptor);

                headerValue = ResourceUtils.Resolve(headerValue, serviceDescriptors.ToArray());

                headerParameter.SetValue(headerValue);
            }
        }