Exemplo n.º 1
0
        public ProSuiteQAResponse StartQASync(ProSuiteQARequest parameters)
        {
            var args = PrepareGPToolParameters(parameters, ProSuiteQAToolType.Xml);

            if (args == null)
            {
                return(new ProSuiteQAResponse()
                {
                    Error = ProSuiteQAError.ServiceFailed
                });
            }

            Geoprocessing.OpenToolDialog(_toolpath, args, null, false,
                                         (event_name, o) =>
            {
                if (event_name == "OnEndExecute")
                {
                    var result = o as IGPResult;
                    OnStatusChanged?.Invoke(this, new ProSuiteQAServiceEventArgs(ProSuiteQAServiceState.Finished, result?.Values?.First()));
                }
                else                         // TODO other events than "OnStartExecute" ?
                {
                }
            });
            return(null);
        }
Exemplo n.º 2
0
        public async Task <ProSuiteQAResponse> StartQATestingAsync(ProSuiteQARequest request)
        {
            var service = GetQAService(request.ServiceType);

            if (service == null)              // throw?
            {
                return new ProSuiteQAResponse()
                       {
                           Error = ProSuiteQAError.ServiceUnavailable
                       }
            }
            ;

            // service is responsible for correct format (passtrough)
            return(await service.StartQAAsync(request));
        }
Exemplo n.º 3
0
        // every service provider is responsible for converting of input/output data (common data format converters?)
        #region Data converters

        private IReadOnlyList <string> PrepareGPToolParameters(ProSuiteQARequest parameters, ProSuiteQAToolType toolType)
        {
            try
            {
                var toolParams = parameters.RequestData?.ToString();
                if (toolParams == null)
                {
                    return(null);
                }

                var localParams = toolParams.Split(',');
                return(Geoprocessing.MakeValueArray(localParams));
            }
            catch (Exception ex)
            {
                _msg.Error(ex.Message);
            }
            return(null);
        }
Exemplo n.º 4
0
        public async Task <ProSuiteQAResponse> StartQAAsync(ProSuiteQARequest parameters)
        {
            var cts = new CancellationTokenSource();

            var args = PrepareGPToolParameters(parameters, ProSuiteQAToolType.Xml);

            if (args == null)
            {
                return(new ProSuiteQAResponse()
                {
                    Error = ProSuiteQAError.ServiceFailed
                });
            }

            // background thread
            GPExecuteToolFlags flags = GPExecuteToolFlags.GPThread;

            // silent call of GP Server Toolbox
            var result = await Geoprocessing.ExecuteToolAsync(_toolpath, args, null, cts.Token, GPEventHandler, flags);

            return(FormatProSuiteResponse(result));
        }
Exemplo n.º 5
0
        public ProSuiteQAResponse StartQATesting(ProSuiteQARequest request)
        {
            var service = GetQAService(request.ServiceType);

            return(service?.StartQASync(request));
        }