Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ConfigCheckerEngine.Models
- {
- using ConfigCheckerEngine.Models.FeatureMappings;
- using ConfigCheckerEngine.Models.JSONMappings;
- using ConfigCheckerEngine.Utils.Constants;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Xml;
- public class ConfigReader
- {
- public List<Feature> ReadAllFeaturesForOperator(XmlDocument doc)
- {
- Dictionary<string, Feature> allKeys = new Dictionary<string, Feature>();
- var applicationSettingsNodes = doc.GetElementsByTagName(Constants.XmlNodeForExtraction).Item(0).ChildNodes;
- for (int i = 0; i < applicationSettingsNodes.Count; i++)
- {
- if (applicationSettingsNodes[i].NodeType == XmlNodeType.Comment)
- {
- continue;
- }
- var currentNodeKey = applicationSettingsNodes[i].Attributes[Constants.KeyNodeAttribute].Value;
- if (!allKeys.ContainsKey(currentNodeKey))
- {
- string curNodeValue = "";
- if (applicationSettingsNodes[i].Attributes[Constants.ValueNodeAttribute] != null)
- {
- curNodeValue = applicationSettingsNodes[i].Attributes[Constants.ValueNodeAttribute].Value;
- }
- var curNodeTransformType = "";
- if (applicationSettingsNodes[i].Attributes[Constants.TransformTypeNodeAttribute] != null)
- {
- curNodeTransformType = applicationSettingsNodes[i].Attributes[Constants.TransformTypeNodeAttribute].Value;
- }
- var curNodeLocator = "";
- if (curNodeTransformType == "SetAttributes")
- {
- curNodeLocator = applicationSettingsNodes[i].Attributes[Constants.LocatorNodeAttribute].Value;
- }
- allKeys.Add(currentNodeKey, new Feature() {
- Key = currentNodeKey,
- Value = curNodeValue,
- TransformType = curNodeTransformType,
- Locator = curNodeLocator
- });
- }
- }
- return allKeys.Select(kvp => kvp.Value).ToList();
- }
- public List<string> FindWebConfigDuplicates(XmlDocument doc)
- {
- List<string> allKeys = new List<string>();
- List<string> repeatedKeys = new List<string>();
- var applicationSettingsNodes = doc.GetElementsByTagName(Constants.XmlNodeForExtraction).Item(0).ChildNodes;
- for (int i = 0; i < applicationSettingsNodes.Count; i++)
- {
- if (applicationSettingsNodes[i].NodeType == XmlNodeType.Comment)
- {
- continue;
- }
- var currentNodeKey = applicationSettingsNodes[i].Attributes[Constants.KeyNodeAttribute].Value;
- if (!allKeys.Contains(currentNodeKey))
- {
- allKeys.Add(currentNodeKey);
- }
- else
- {
- repeatedKeys.Add(currentNodeKey);
- }
- }
- return repeatedKeys;
- }
- public XmlDocument ConvertToXMLFromPath(string input)
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(input);
- return doc;
- }
- public XmlDocument ConvertToXMLFromString(string input)
- {
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(input);
- return doc;
- }
- private string RemoveBOMSymbol(string xmlAsString)
- {
- string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
- if (xmlAsString.StartsWith(_byteOrderMarkUtf8))
- {
- xmlAsString = xmlAsString.Replace(_byteOrderMarkUtf8, string.Empty);
- }
- return xmlAsString;
- }
- public XmlDocument ConvertJSONObjectToXML(RootObject deserializedObject)
- {
- var xmlAsString = "";
- foreach (var item in deserializedObject.lines)
- {
- xmlAsString += (item.text);
- }
- return ConvertToXMLFromString(RemoveBOMSymbol(xmlAsString));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement