示例#1
0
        public void ExecuteTest()
        {
            ViewErrors           = new List <IActionableErrorInfo>();
            Errors               = new List <string>();
            OutputArea.IsEnabled = true;
            TestResults          = null;
            IsTesting            = true;

            try
            {
                var testResult      = _serverModel.TestService(Model);
                var serializer      = new Dev2JsonSerializer();
                var responseService = serializer.Deserialize <RecordsetListWrapper>(testResult);
                if (responseService != null)
                {
                    if (responseService.RecordsetList.Any(recordset => recordset.HasErrors))
                    {
                        var errorMessage = string.Join(Environment.NewLine, responseService.RecordsetList.Select(recordset => recordset.ErrorMessage));
                        throw new Exception(errorMessage);
                    }
                    TestResults    = responseService.SerializedResult;
                    _recordsetList = responseService.RecordsetList;
                    if (_recordsetList.Any(recordset => recordset.HasErrors))
                    {
                        var errorMessage = string.Join(Environment.NewLine, _recordsetList.Select(recordset => recordset.ErrorMessage));
                        throw new Exception(errorMessage);
                    }
                    Description = responseService.Description;

                    var outputMapping = _recordsetList.SelectMany(recordset => recordset.Fields, (recordset, recordsetField) =>
                    {
                        var serviceOutputMapping = new ServiceOutputMapping(recordsetField.Name, recordsetField.Alias, recordset.Name)
                        {
                            Path = recordsetField.Path
                        };
                        return(serviceOutputMapping);
                    }).Cast <IServiceOutputMapping>().ToList();

                    _generateOutputArea.IsEnabled = true;
                    _generateOutputArea.Outputs   = outputMapping;
                }
                if (TestResults != null)
                {
                    TestResultsAvailable = TestResults != null;
                    IsTesting            = false;
                    TestPassed           = true;
                    TestFailed           = false;
                }
            }
            catch (JsonSerializationException)
            {
                OutputArea.Outputs = new List <IServiceOutputMapping> {
                    new ServiceOutputMapping("Result", "[[Result]]", "")
                };
            }
            catch (Exception e)
            {
                Errors.Add(e.Message);
                IsTesting  = false;
                TestPassed = false;
                TestFailed = true;
                _generateOutputArea.IsEnabled = false;
                _generateOutputArea.Outputs   = new List <IServiceOutputMapping>();
                _viewmodel.ErrorMessage(e, true);
            }
        }
        public void ExecuteTest()
        {
            ViewErrors           = new List <IActionableErrorInfo>();
            Errors               = new List <string>();
            OutputArea.IsEnabled = true;
            TestResults          = null;
            IsTesting            = true;

            try
            {
                var testResult = _serverModel.TestService(Model);
                var serializer = new Dev2JsonSerializer();
                using (var responseService = serializer.Deserialize <WebService>(testResult))
                {
                    TestResults    = responseService.RequestResponse;
                    _recordsetList = responseService.Recordsets;
                    if (_recordsetList.Any(recordset => recordset.HasErrors))
                    {
                        var errorMessage = string.Join(Environment.NewLine, _recordsetList.Select(recordset => recordset.ErrorMessage));
                        throw new Exception(errorMessage);
                    }

                    Description = responseService.GetOutputDescription();
                }
                // ReSharper disable MaximumChainedReferences
                var outputMapping = _recordsetList.SelectMany(recordset => recordset.Fields, (recordset, recordsetField) =>
                {
                    var serviceOutputMapping = new ServiceOutputMapping(recordsetField.Name, recordsetField.Alias, recordset.Name)
                    {
                        Path = recordsetField.Path
                    };
                    return(serviceOutputMapping);
                }).Cast <IServiceOutputMapping>().ToList();
                // ReSharper restore MaximumChainedReferences
                _generateOutputArea.IsEnabled = true;
                _generateOutputArea.Outputs   = outputMapping;


                if (TestResults != null)
                {
                    TestResultsAvailable     = TestResults != null;
                    IsTesting                = false;
                    TestPassed               = true;
                    TestFailed               = false;
                    OutputCountExpandAllowed = true;
                }
            }
            catch (JsonSerializationException)
            {
                OutputArea.Outputs = new List <IServiceOutputMapping> {
                    new ServiceOutputMapping("Result", "[[Result]]", "")
                };
            }
            catch (Exception e)
            {
                Errors.Add(e.Message);
                IsTesting  = false;
                TestPassed = false;
                TestFailed = true;
                _generateOutputArea.IsEnabled = false;
                _generateOutputArea.Outputs   = new List <IServiceOutputMapping>();
                _viewmodel.ErrorMessage(e, true);
            }
            PasteResponseVisible = false;
        }