Dev2.Runtime.ServiceModel.Data.Resource.GetDependenciesForWorkflowService C# (CSharp) Method

GetDependenciesForWorkflowService() private method

private GetDependenciesForWorkflowService ( System.Xml.Linq.XElement xml ) : void
xml System.Xml.Linq.XElement
return void
        void GetDependenciesForWorkflowService(XElement xml)
        {
            var loadXml = xml.Descendants("XamlDefinition").ToList();
            if(loadXml.Count != 1)
            {
                return;
            }

            using(var textReader = new StringReader(loadXml[0].Value))
            {
                var errors = new StringBuilder();
                try
                {
                    var elementToUse = loadXml[0].HasElements ? loadXml[0] : XElement.Load(textReader, LoadOptions.None);
                    var dependenciesFromXml = from desc in elementToUse.Descendants()
                                              where
                                                  (desc.Name.LocalName.Contains("DsfDatabaseActivity") ||
                                                   desc.Name.LocalName.Contains("DsfPluginActivity") ||
                                                   desc.Name.LocalName.Contains("DsfWebserviceActivity") ||
                                                   desc.Name.LocalName.Contains("DsfActivity")) &&
                                                  desc.Attribute("UniqueID") != null
                                              select desc;
                    var xElements = dependenciesFromXml as List<XElement> ?? dependenciesFromXml.ToList();
                    var count = xElements.Count;
                    if(count > 0)
                    {
                        Dependencies = new List<IResourceForTree>();
                        xElements.ForEach(element =>
                            {
                                var uniqueIdAsString = element.AttributeSafe("UniqueID");
                                var resourceIdAsString = element.AttributeSafe("ResourceID");
                                var resourceName = element.AttributeSafe("ServiceName");
                                var actionTypeStr = element.AttributeSafe("Type");
                                var resourceType = GetResourceTypeFromString(actionTypeStr);
                                Guid uniqueId;
                                Guid.TryParse(uniqueIdAsString, out uniqueId);
                                Guid resId;
                                Guid.TryParse(resourceIdAsString, out resId);
                                Dependencies.Add(CreateResourceForTree(resId, uniqueId, resourceName, resourceType));
                                AddRemoteServerDependencies(element);
                            });
                    }
                    AddEmailSources(elementToUse);
                    AddDatabaseSourcesForSqlBulkInsertTool(elementToUse);
                }
                catch(Exception e)
                {
                    var resName = xml.AttributeSafe("Name");
                    errors.AppendLine("Loading dependencies for [ " + resName + " ] caused " + e.Message);
                }
            }
        }