public void AddConnection_ShouldAddConnection()
        {
            //Arrange
            var connect = new ConnectionInfo()
            {
                Database       = string.Empty,
                LastConnection = false,
                Login          = string.Empty,
                ServerUrl      = string.Empty
            };
            var currentConnectionCount = projectConfiguraiton.Connections.Count;

            //Act
            projectConfiguraiton.AddConnection(connect);

            //Assert
            Assert.AreEqual(currentConnectionCount + 1, projectConfiguraiton.Connections.Count);
        }
示例#2
0
        private IProjectConfiguraiton MapXmlDocToProjectConfig(IProjectConfiguraiton projectConfiguration, XmlDocument xmlDoc)
        {
            projectConfiguration.LastSelectedDir    = xmlDoc.SelectSingleNode("projectinfo/lastSelectedDir")?.InnerText;
            projectConfiguration.LastSelectedMfFile = xmlDoc.SelectSingleNode("projectinfo/lastSelectedMfFile")?.InnerText;
            bool.TryParse(xmlDoc.SelectSingleNode("projectinfo/useVSFormatting")?.InnerText, out bool isUsedVSFormatting);
            projectConfiguration.UseVSFormatting = isUsedVSFormatting;
            bool.TryParse(xmlDoc.SelectSingleNode("projectinfo/UseCommonProjectStructure")?.InnerText, out bool isUsedCommonProjectStructure);
            projectConfiguration.UseCommonProjectStructure = isUsedCommonProjectStructure;

            projectConfiguration.LastSelectedSearchTypeInOpenFromPackage = xmlDoc.SelectSingleNode("projectinfo/OpenFromPackageLastSearchType")?.InnerText;
            projectConfiguration.MethodsFolderPath = xmlDoc.SelectSingleNode("projectinfo/MethodsFolderPath")?.InnerText ?? DefaultMethodsFolderPath;
            projectConfiguration.MethodConfigPath  = xmlDoc.SelectSingleNode("projectinfo/MethodConfigPath")?.InnerText ?? DefaultMethodConfigFilePath;
            projectConfiguration.IOMFilePath       = xmlDoc.SelectSingleNode("projectinfo/IOMFilePath")?.InnerText ?? DefaultIOMDllFilePath;

            var connectionInfoXmlNodes = xmlDoc.SelectNodes("projectinfo/connections/connectionInfo");

            foreach (XmlNode connectionInfoNode in connectionInfoXmlNodes)
            {
                var connectionInfo = new ConnectionInfo();
                connectionInfo.ServerUrl = connectionInfoNode.SelectSingleNode("serverUrl").InnerText;
                connectionInfo.Database  = connectionInfoNode.SelectSingleNode("databaseName").InnerText;
                connectionInfo.Login     = connectionInfoNode.SelectSingleNode("login").InnerText;

                bool value;
                if (bool.TryParse(connectionInfoNode.SelectSingleNode("lastConnection")?.InnerText, out value))
                {
                    connectionInfo.LastConnection = value;
                }

                projectConfiguration.AddConnection(connectionInfo);
            }
            var methodInfoXmlNodes = xmlDoc.SelectNodes("projectinfo/methods/methodInfo");

            foreach (XmlNode methodInfoNode in methodInfoXmlNodes)
            {
                XmlNode    manifestFileNameNode = methodInfoNode.SelectSingleNode("manifestFileName");
                MethodInfo methodInfo;
                if (manifestFileNameNode != null)
                {
                    methodInfo = new PackageMethodInfo()
                    {
                        ManifestFileName = manifestFileNameNode.InnerText
                    };
                }
                else
                {
                    methodInfo = new MethodInfo();
                }

                methodInfo.InnovatorMethodConfigId = methodInfoNode.SelectSingleNode("configId").InnerText;
                methodInfo.InnovatorMethodId       = methodInfoNode.SelectSingleNode("id").InnerText;
                methodInfo.MethodName     = methodInfoNode.SelectSingleNode("methodName").InnerText;
                methodInfo.MethodType     = methodInfoNode.SelectSingleNode("methodType").InnerText;
                methodInfo.MethodComment  = methodInfoNode.SelectSingleNode("comments")?.InnerText;
                methodInfo.MethodLanguage = methodInfoNode.SelectSingleNode("language").InnerText;
                methodInfo.TemplateName   = methodInfoNode.SelectSingleNode("templateName").InnerText;
                methodInfo.Package        = new PackageInfo(methodInfoNode.SelectSingleNode("packageName").InnerText);

                EventSpecificData eventData;
                if (Enum.TryParse(methodInfoNode.SelectSingleNode("eventData")?.InnerText, out eventData))
                {
                    methodInfo.EventData = eventData;
                }
                else
                {
                    methodInfo.EventData = EventSpecificData.None;
                }

                XmlNode      executionAllowedTo        = methodInfoNode.SelectSingleNode("executionAllowedTo");
                XmlAttribute executionAllowedKeyedName = executionAllowedTo.Attributes["keyedName"];
                methodInfo.ExecutionAllowedToId        = executionAllowedTo.InnerText;
                methodInfo.ExecutionAllowedToKeyedName = executionAllowedKeyedName.InnerText;

                projectConfiguration.MethodInfos.Add(methodInfo);
            }

            var searchItemNodes = xmlDoc.SelectNodes("projectinfo/lastSavedSearch/searchItem");

            foreach (XmlNode searchItemNode in searchItemNodes)
            {
                string itemTypeName = searchItemNode.Attributes["itemTypeName"]?.InnerText;
                if (string.IsNullOrEmpty(itemTypeName))
                {
                    continue;
                }
                var properties    = new List <PropertyInfo>();
                var propertyNodes = searchItemNode.SelectNodes("property");

                foreach (XmlNode propertyNode in propertyNodes)
                {
                    var savedSearch = new PropertyInfo();
                    savedSearch.PropertyName  = propertyNode.SelectSingleNode("propertyName").InnerText;
                    savedSearch.PropertyValue = propertyNode.SelectSingleNode("propertyValue").InnerText;

                    properties.Add(savedSearch);
                }


                projectConfiguration.LastSavedSearch.Add(itemTypeName, properties);
            }

            return(projectConfiguration);
        }