Beispiel #1
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var msg        = new ExecuteMessage();
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Save Resource Service", GlobalConstants.WarewolfInfo);

                values.TryGetValue("WcfSource", out StringBuilder resourceDefinition);

                var src = serializer.Deserialize <WcfServiceSourceDefinition>(resourceDefinition);

                var source = new WcfSource()
                {
                    EndpointUrl = src.EndpointUrl
                };

                source.Execute();
            }
            catch (Exception err)
            {
                msg.HasError = true;
                msg.Message  = new StringBuilder(err.Message);
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
            }

            return(serializer.SerializeToBuilder(msg));
        }
Beispiel #2
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var msg        = new ExecuteMessage();
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Save Wcf Service Source", GlobalConstants.WarewolfInfo);

                values.TryGetValue("WcfSource", out StringBuilder resourceDefinition);

                var src = serializer.Deserialize <WcfServiceSourceDefinition>(resourceDefinition);
                var con = new WcfSource
                {
                    EndpointUrl  = src.EndpointUrl,
                    ResourceName = src.Name,
                    Name         = src.Name,
                    ResourceID   = src.Id,
                    Type         = enSourceType.WcfSource,
                    ResourceType = "WcfSource"
                };
                ResourceCatalog.Instance.SaveResource(GlobalConstants.ServerWorkspaceID, con, src.Path);
                ServerExplorerRepo.UpdateItem(con);

                msg.HasError = false;
            }
            catch (Exception err)
            {
                msg.HasError = true;
                msg.Message  = new StringBuilder(err.Message);
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
            }

            return(serializer.SerializeToBuilder(msg));
        }
Beispiel #3
0
        public void DsfWcfEndPointActivity_Equals_InstancesWithSameParams_NotSame_Expect_False()
        {
            //-----------------------Arrange---------------------
            var mockOutputDescription = new Mock <IOutputDescription>();

            var wcfSource = new WcfSource(new FakeWcfProxyService())
            {
                Name = "WcfSource", EndpointUrl = "TestUrl"
            };

            var wcfAction = new WcfAction()
            {
                FullName = "MethodName",
                Method   = "MethodName",
            };

            var dsfWcfEndPointActivity = new DsfWcfEndPointActivity()
            {
                Method            = wcfAction,
                OutputDescription = mockOutputDescription.Object,
                Source            = wcfSource,
            };

            //-----------------------Act-------------------------
            var equals = dsfWcfEndPointActivity.Equals(new DsfWcfEndPointActivity()
            {
                Method            = wcfAction,
                OutputDescription = mockOutputDescription.Object,
                Source            = wcfSource,
            });

            //-----------------------Assert----------------------
            Assert.IsFalse(equals);
        }
Beispiel #4
0
        public void DsfWcfEndPointActivity_GetHashCode_MethodOutputDescriptionSource_NotNull_Expect_IsNotNull()
        {
            //-----------------------Arrange---------------------
            var mockOutputDescription = new Mock <IOutputDescription>();

            var wcfSource = new WcfSource(new FakeWcfProxyService())
            {
                Name = "WcfSource", EndpointUrl = "TestUrl"
            };
            var wcfAction = new WcfAction()
            {
                FullName = "MethodName",
                Method   = "MethodName",
            };
            var dsfWcfEndPointActivity = new DsfWcfEndPointActivity()
            {
                Method            = wcfAction,
                OutputDescription = mockOutputDescription.Object,
                Source            = wcfSource,
            };
            //-----------------------Act-------------------------
            var hashCode = dsfWcfEndPointActivity.GetHashCode();

            //-----------------------Assert----------------------
            Assert.IsNotNull(hashCode);
        }
Beispiel #5
0
        public void DsfWcfEndPointActivity_TryExecute_injectVal_IsNull_Expect_NoError()
        {
            //-----------------------Arrange---------------------
            var mockEsbChannel        = new Mock <IEsbChannel>();
            var mockResourceCatalog   = new Mock <IResourceCatalog>();
            var mockDSFDataObject     = new Mock <IDSFDataObject>();
            var mockOutputDescription = new Mock <IOutputDescription>();
            var mockPath            = new Mock <IPath>();
            var mockDataSourceShape = new Mock <IDataSourceShape>();
            var mockWcfAction       = new Mock <IWcfAction>();

            var wcfSource = new WcfSource(new FakeWcfProxyService())
            {
                Name = "WcfSource", EndpointUrl = "TestUrl"
            };

            Thread.CurrentPrincipal = null;
            var identity         = new GenericIdentity("User");
            var currentPrincipal = new GenericPrincipal(identity, new[] { "Role1", "Roll2" });

            Thread.CurrentPrincipal     = currentPrincipal;
            Common.Utilities.ServerUser = currentPrincipal;

            var dataListID  = Guid.NewGuid();
            var environment = new ExecutionEnvironment();
            var outputs     = new List <IServiceOutputMapping> {
                new ServiceOutputMapping()
            };
            var dsfWcfEndPointActivity = new TestDsfWcfEndPointActivity()
            {
                ResourceCatalog = mockResourceCatalog.Object,
                Method          = mockWcfAction.Object,
                Inputs          = new List <IServiceInput>()
                {
                    new ServiceInput("[[a]]", "")
                },
                Outputs           = outputs,
                OutputDescription = mockOutputDescription.Object,
            };

            mockDataSourceShape.Setup(o => o.Paths).Returns(new List <IPath> {
                mockPath.Object
            });
            mockWcfAction.Setup(o => o.Method).Returns("TestMethod");
            mockResourceCatalog.Setup(o => o.GetResource <WcfSource>(It.IsAny <Guid>(), It.IsAny <Guid>())).Returns(wcfSource);
            mockOutputDescription.Setup(o => o.DataSourceShapes).Returns(new List <IDataSourceShape> {
                mockDataSourceShape.Object
            }).Verifiable();
            mockOutputDescription.Setup(o => o.Format).Returns(OutputFormats.ShapedXML).Verifiable();
            mockDSFDataObject.Setup(o => o.DataListID).Returns(dataListID);
            mockDSFDataObject.Setup(o => o.Environment).Returns(environment).Verifiable();
            //-----------------------Act-------------------------
            dsfWcfEndPointActivity.TestExecutionImpl(mockEsbChannel.Object, mockDSFDataObject.Object, "TestInput", "TestOutput", out ErrorResultTO errorResult, 0);
            //-----------------------Assert----------------------
            mockOutputDescription.VerifyAll();
            mockDataSourceShape.VerifyAll();
            mockResourceCatalog.Verify(o => o.GetResource <WcfSource>(It.IsAny <Guid>(), It.IsAny <Guid>()));
            Assert.AreEqual(0, errorResult.FetchErrors().Count);
        }
Beispiel #6
0
        public void WcfSource_ToXml_ReturnsSuccess()
        {
            var source = GetSource();
            var xml    = source.ToXml();

            var actual = new WcfSource(xml);

            Assert.AreEqual(source.ResourceType, actual.ResourceType);
        }
Beispiel #7
0
        public void DsfWcfEndPointActivity_ExecutionImpl_Catch_GetResource_IsNull_Expect_Error()
        {
            //-----------------------Arrange---------------------
            var mockEsbChannel        = new Mock <IEsbChannel>();
            var mockResourceCatalog   = new Mock <IResourceCatalog>();
            var mockDSFDataObject     = new Mock <IDSFDataObject>();
            var mockOutputDescription = new Mock <IOutputDescription>();
            var mockPath = new Mock <IPath>();

            var wcfSource = new WcfSource(new FakeWcfProxyService())
            {
                Name = "WcfSource", EndpointUrl = "TestUrl"
            };

            var wcfAction = new WcfAction()
            {
                FullName = "MethodName",
                Method   = "MethodName",
            };

            Thread.CurrentPrincipal = null;
            var identity         = new GenericIdentity("User");
            var currentPrincipal = new GenericPrincipal(identity, new[] { "Role1", "Roll2" });

            Thread.CurrentPrincipal     = currentPrincipal;
            Common.Utilities.ServerUser = currentPrincipal;

            var dataListID  = Guid.NewGuid();
            var environment = new ExecutionEnvironment();
            var outputs     = new List <IServiceOutputMapping> {
                new ServiceOutputMapping()
            };
            var dsfWcfEndPointActivity = new TestDsfWcfEndPointActivity()
            {
                ResourceCatalog = mockResourceCatalog.Object,
                Method          = wcfAction,
                Inputs          = new List <IServiceInput>()
                {
                    new ServiceInput("[[a]]", "asa")
                },
                Outputs           = outputs,
                OutputDescription = mockOutputDescription.Object,
                Source            = wcfSource,
            };

            mockOutputDescription.Setup(o => o.Format).Returns(OutputFormats.ShapedXML).Verifiable();
            mockDSFDataObject.Setup(o => o.Environment).Returns(environment).Verifiable();
            //-----------------------Act-------------------------
            dsfWcfEndPointActivity.TestExecutionImpl(mockEsbChannel.Object, mockDSFDataObject.Object, "TestInput", "TestOutput", out ErrorResultTO errorResult, 0);
            //-----------------------Assert----------------------
            mockDSFDataObject.VerifyAll();
            mockOutputDescription.VerifyAll();
            mockResourceCatalog.Verify(o => o.GetResource <WcfSource>(It.IsAny <Guid>(), It.IsAny <Guid>()));

            Assert.AreEqual(1, errorResult.FetchErrors().Count);
            Assert.AreEqual("Object reference not set to an instance of an object.", errorResult.FetchErrors()[0]);
        }
        public IWcfServerSource FetchSource(Guid resourceID)
        {
            var xaml      = _queryProxy.FetchResourceXaml(resourceID);
            var wcfsource = new WcfSource(xaml.ToXElement());

            var def = new WcfServiceSourceDefinition(wcfsource);

            return(def);
        }
        protected void ExecuteService(int update, out ErrorResultTO errors, IWcfAction method, IDSFDataObject dataObject, IOutputFormatter formater)
        {
            errors = new ErrorResultTO();
            Source = ResourceCatalog.GetResource <WcfSource>(dataObject.WorkspaceID, SourceId);
            var itrs = new List <IWarewolfIterator>(5);
            IWarewolfListIterator itrCollection = new WarewolfListIterator();
            var methodParameters = Inputs.Select(a => new MethodParameter {
                EmptyToNull = a.EmptyIsNull, IsRequired = a.RequiredField, Name = a.Name, Value = a.Value, TypeName = a.TypeName
            }).ToList();

            BuildParameterIterators(update, methodParameters.ToList(), itrCollection, itrs, dataObject);
            try
            {
                while (itrCollection.HasMoreData())
                {
                    var pos = 0;
                    foreach (var itr in itrs)
                    {
                        var injectVal = itrCollection.FetchNextValue(itr);
                        var param     = methodParameters.ToList()[pos];


                        param.Value = param.EmptyToNull &&
                                      (injectVal == null ||
                                       string.Compare(injectVal, string.Empty,
                                                      StringComparison.InvariantCultureIgnoreCase) == 0)
                            ? null
                            : injectVal;

                        pos++;
                    }

                    var result = Source.ExecuteMethod(method);

                    if (result != null)
                    {
                        ResponseManager = new ResponseManager {
                            OutputDescription = OutputDescription, Outputs = Outputs, IsObject = IsObject, ObjectName = ObjectName
                        };
                        ResponseManager.PushResponseIntoEnvironment(result.ToString(), update, dataObject);
                    }
                }
            }
            catch (Exception e)
            {
                errors.AddError(e.Message);
            }
        }
Beispiel #10
0
        public IWcfServerSource FetchSource(Guid resourceID)
        {
            var xaml      = _queryProxy.FetchResourceXaml(resourceID);
            var wcfsource = new WcfSource(xaml.ToXElement());

            var def = new WcfServiceSourceDefinition
            {
                Id           = wcfsource.Id,
                Name         = wcfsource.ResourceName,
                Path         = wcfsource.GetSavePath(),
                ResourceName = wcfsource.Name,
                EndpointUrl  = wcfsource.EndpointUrl
            };

            return(def);
        }
Beispiel #11
0
        public virtual RecordsetList FetchRecordset(WcfService wcfService)
        {
            if (wcfService == null)
            {
                throw new ArgumentNullException(nameof(wcfService));
            }
            var broker            = new WcfSource();
            var outputDescription = broker.ExecuteMethod(wcfService);
            var dataSourceShape   = outputDescription.DataSourceShapes[0];
            var recSet            = outputDescription.ToRecordsetList(wcfService.Recordsets, GlobalConstants.PrimitiveReturnValueTag);

            if (recSet != null)
            {
                foreach (var recordset in recSet)
                {
                    foreach (var field in recordset.Fields)
                    {
                        if (string.IsNullOrEmpty(field.Name))
                        {
                            continue;
                        }
                        var path    = field.Path;
                        var rsAlias = string.IsNullOrEmpty(field.RecordsetAlias) ? "" : field.RecordsetAlias.Replace("()", "");

                        var value = string.Empty;
                        if (!string.IsNullOrEmpty(field.Alias))
                        {
                            value = string.IsNullOrEmpty(rsAlias)
                                        ? $"[[{field.Alias}]]"
                                : $"[[{rsAlias}().{field.Alias}]]";
                        }

                        if (path != null)
                        {
                            path.OutputExpression = value;
                            dataSourceShape.Paths.Add(path);
                        }
                    }
                }
            }
            return(recSet);
        }
Beispiel #12
0
        public virtual RecordsetList FetchRecordset(WcfService wcfService)
        {
            if (wcfService == null)
            {
                throw new ArgumentNullException(nameof(wcfService));
            }
            var broker            = new WcfSource();
            var outputDescription = broker.ExecuteMethod(wcfService);
            var dataSourceShape   = outputDescription.DataSourceShapes[0];
            var recSet            = outputDescription.ToRecordsetList(wcfService.Recordsets, GlobalConstants.PrimitiveReturnValueTag);

            if (recSet != null)
            {
                foreach (var recordset in recSet)
                {
                    FetchRecordsetFields_WcfService(dataSourceShape, recordset);
                }
            }
            return(recSet);
        }