/// <summary> /// Loads a single GUIMap XML as dictionary collection /// </summary> /// <param name="filePath">The file path.</param> /// <returns></returns> public Dictionary <String, Guimap> LoadGuiMap(Stream stream) { //Logger.Debug("Creating instance of XML Document"); XmlDocument doc = new XmlDocument(); Dictionary <String, Guimap> guiObjCollection = null; try { //Logger.Debug(string.Concat("Loading the Guimap xml file : [", filePath, "]")); doc.Load(stream); XmlNodeList rootNode = doc.DocumentElement.SelectNodes(xmlNodePath); //Create a dictionary object that can hold key value pairs of string and GUIMap objects guiObjCollection = new Dictionary <string, Guimap>(); Guimap guimap = null; foreach (XmlNode featureSetNode in rootNode) { XmlNodeList elementNodes = featureSetNode.ChildNodes; foreach (XmlNode node in elementNodes) { guimap = new Guimap(); string logicalName = node.Attributes["name"].InnerText; string identificationType = node.FirstChild.Name; string elementValue = node.FirstChild.InnerText; //Assgin logical name guimap.LogicalName = logicalName; //Save the XML details to a GUIMAP class //identify the identifier && assign the identifier type switch (identificationType.ToLower()) { case id: guimap.IdentificationType = identificationType; guimap.Id = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; case marked: guimap.IdentificationType = identificationType; guimap.Marked = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; case xpath: guimap.IdentificationType = identificationType; guimap.Xpath = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; case classname: guimap.IdentificationType = identificationType; guimap.ClassName = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; case button: guimap.IdentificationType = identificationType; guimap.Button = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; case css: guimap.IdentificationType = identificationType; guimap.Css = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; case text: guimap.IdentificationType = identificationType; guimap.Atribute = elementValue; //Add the logical name and GUIMap to the Object Collection if (!guiObjCollection.ContainsKey(guimap.LogicalName)) { guiObjCollection.Add(guimap.LogicalName, guimap); } continue; } } } } catch (FileNotFoundException fne) { string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; //Logger.Error("File " + filePath + "not found", fne); //string message = string.Format("Exception occured while loading the values from Gui map xml {0} not found", filePath); //Logger.Error(message, fne); //throw new ResourceException(methodName, message, fne); } return(guiObjCollection); }
/// <summary> /// Gets the element value. /// </summary> /// <param name="guiObjCollection">The GUI object collection.</param> /// <param name="logicalName">Name of the logical.</param> /// <returns></returns> /// identifier Not implemented! /// or /// Exception occured while trying to fetch value from Guimap! /// </exception> public Dictionary <string, string> GetElementValue(Dictionary <string, Guimap> guiObjCollection, string logicalName) { Guimap tempMap = null; Dictionary <string, string> locator = new Dictionary <string, string>(); string elementValue = ""; try { if (guiObjCollection.ContainsKey(logicalName)) { tempMap = guiObjCollection[logicalName]; string identityType = tempMap.IdentificationType; switch (identityType.ToLower()) { case id: elementValue = "id" + tempMap.Id; locator.Add("id", tempMap.Id); break; case marked: elementValue = "name" + tempMap.Marked; locator.Add("marked", tempMap.Marked); break; case xpath: elementValue = "xpath" + tempMap.Xpath; locator.Add("xpath", tempMap.Xpath); break; case classname: elementValue = "class" + tempMap.ClassName; locator.Add("class", tempMap.ClassName); break; case css: elementValue = "css" + tempMap.Css; locator.Add("css", tempMap.Css); break; case button: elementValue = "content" + tempMap.Button; locator.Add("button", tempMap.Button); break; case text: elementValue = "atribute" + tempMap.Text; locator.Add("text", tempMap.Text); break; //default: //throw new GUIException("identifier Not implemented!"); } } } catch (NullReferenceException e) { //Logger.Error("Exception occured while trying to fetch value from Guimap!"); //throw new GUIException("Exception occured while trying to fetch value from Guimap!", e); } catch (ArgumentException e) { //Logger.Error("Exception occured while trying to fetch value from Guimap!"); //throw new GUIException("Exception occured while trying to fetch value from Guimap!", e); } return(locator); }