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

GetDependenciesForWorkerService() private method

private GetDependenciesForWorkerService ( System.Xml.Linq.XElement xml ) : void
xml System.Xml.Linq.XElement
return void
        void GetDependenciesForWorkerService(XElement xml)
        {
            var loadXml = xml.Descendants("Actions").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("Action") &&
                                                  desc.Attribute("SourceID") != 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("SourceID");
                                var resourceIdAsString = element.AttributeSafe("ResourceID");
                                var resourceName = element.AttributeSafe("SourceName");
                                var actionTypeStr = element.AttributeSafe("Type");
                                var resourceType = GetResourceTypeFromString(actionTypeStr);
                                Guid uniqueId;
                                Guid.TryParse(uniqueIdAsString, out uniqueId);
                                Guid resId;
                                Guid.TryParse(resourceIdAsString, out resId);
                                if (resId == Guid.Empty)
                                {
                                    resId = uniqueId;
                                }
                                if(resourceType == ResourceType.WebService)
                                {
                                    resId = uniqueId;
                                }
                                Dependencies.Add(CreateResourceForTree(resId, uniqueId, resourceName, resourceType));
                            });
                    }
                }
                catch(Exception e)
                {
                    var resName = xml.AttributeSafe("Name");
                    errors.AppendLine("Loading dependencies for [ " + resName + " ] caused " + e.Message);
                }
            }
        }