public void ParseXmlFromRoot() { #region Arrange const string nsString = "http://schemas.microsoft.com/daxdrill"; var xmlString = @"<daxdrill xmlns=""http://schemas.microsoft.com/daxdrill""> <table id=""Usage"" connection_id=""localhost Roaming Model"" xmlns=""http://schemas.microsoft.com/daxdrill""> <columns> <column> <name>Call Type</name> <expression>Usage[Call Type]</expression> </column> <column> <name>Call Type Description</name> <expression>Usage[Call Type Description]</expression> </column> <column> <name>Gross Billed</name> <expression>Usage[Gross Billed]</expression> </column> </columns> </table> <table id=""RoamingMeasure"" connection_id=""localhost Roaming Model"" xmlns=""http://schemas.microsoft.com/daxdrill""> <query>Usage</query> </table> </daxdrill>"; #endregion #region Act List <DetailColumn> columns = DaxDrillConfig.GetColumnsFromTableXml(nsString, xmlString, "localhost Roaming Model", "Usage"); #endregion #region Assert foreach (var column in columns) { Console.WriteLine(column.Name + " = " + column.Expression); } Assert.AreEqual(3, columns.Count); Assert.AreEqual("Usage[Call Type]", columns.Where(x => x.Name == "Call Type").Select(x => x.Expression).FirstOrDefault()); Assert.AreEqual("Usage[Call Type Description]", columns.Where(x => x.Name == "Call Type Description").Select(x => x.Expression).FirstOrDefault()); Assert.AreEqual("Usage[Gross Billed]", columns.Where(x => x.Name == "Gross Billed").Select(x => x.Expression).FirstOrDefault()); #endregion }
public void ParseXmlFromTable() { #region Arrange const string nsString = "daxdrill"; var xmlString = @"<?xml version=""1.0"" encoding=""UTF-8""?> <table id=""Usage"" connection_id=""localhost Roaming Model"" xmlns=""{0}""> <columns> <column> <name>Call Type</name> <expression>Usage[Call Type]</expression> </column> <column> <name>Call Type Description</name> <expression>Usage[Call Type Description]</expression> </column> <column> <name>Gross Billed</name> <expression>Usage[Gross Billed]</expression> </column> </columns> </table>" .Replace("{0}", nsString); #endregion #region Act List <DetailColumn> columns = DaxDrillConfig.GetColumnsFromTableXml(nsString, xmlString, "localhost Roaming Model", "Usage"); #endregion #region Assert foreach (var column in columns) { Console.WriteLine(column.Name + " = " + column.Expression); } Assert.AreEqual(3, columns.Count); Assert.AreEqual("Usage[Call Type]", columns.Where(x => x.Name == "Call Type").Select(x => x.Expression).FirstOrDefault()); Assert.AreEqual("Usage[Call Type Description]", columns.Where(x => x.Name == "Call Type Description").Select(x => x.Expression).FirstOrDefault()); Assert.AreEqual("Usage[Gross Billed]", columns.Where(x => x.Name == "Gross Billed").Select(x => x.Expression).FirstOrDefault()); #endregion }
public IEnumerable <DetailColumn> GetCustomDetailColumns(Excel.Range rngCell) { Excel.WorkbookConnection wbcnn = null; Excel.Workbook workbook = null; Excel.Worksheet sheet = null; wbcnn = ExcelHelper.GetWorkbookConnection(rngCell); sheet = (Excel.Worksheet)rngCell.Parent; workbook = (Excel.Workbook)sheet.Parent; TabularItems.Measure measure = GetMeasure(rngCell); string xmlString = ExcelHelper.ReadCustomXmlNode( workbook, Constants.DaxDrillXmlSchemaSpace, string.Format("{0}[@id='{1}']", Constants.TableXpath, measure.TableName)); List <DetailColumn> columns = DaxDrillConfig.GetColumnsFromTableXml(Constants.DaxDrillXmlSchemaSpace, xmlString, wbcnn.Name, measure.TableName); return(columns); }