/// <summary> /// Converts the alerts XML to a object /// </summary> /// <returns>The checkin details</returns> public CheckInAlertDetails GetCheckInDetails() { var returnValue = new CheckInAlertDetails(); returnValue.Comment = eventJson["resource"]["comment"].ToString(); returnValue.Changeset = Convert.ToInt32(eventJson["resource"]["changesetId"]); returnValue.Summary = eventJson["message"]["text"].ToString(); returnValue.Committer = eventJson["resource"]["author"]["displayName"].ToString(); //TeamProject = node.SelectSingleNode("TeamProject").InnerText, return(returnValue); }
/// <summary> /// Converts the alerts XML to a object /// </summary> /// <param name="alertMessage">The xml message</param> /// <returns>The checkin details</returns> internal static CheckInAlertDetails GetCheckInDetails(string alertMessage) { var doc = new XmlDocument(); doc.LoadXml(alertMessage); var node = doc.SelectSingleNode("/CheckinEvent"); var returnValue = new CheckInAlertDetails() { Summary = node.SelectSingleNode("Title").InnerText, Committer = node.SelectSingleNode("Committer").InnerText, TeamProject = node.SelectSingleNode("TeamProject").InnerText, Comment = node.SelectSingleNode("Comment").InnerText, }; foreach (XmlNode innernode in doc.SelectNodes("/CheckinEvent/Artifacts/Artifact[@ArtifactType='VersionedItem']")) { returnValue.Changeset = int.Parse(innernode.Attributes["ItemRevision"].InnerText); switch (innernode.Attributes["ChangeType"].InnerText) { case "edit": returnValue.FilesEdited.Add(innernode.Attributes["Item"].InnerText); break; case "add": returnValue.FilesAdded.Add(innernode.Attributes["Item"].InnerText); break; case "delete": returnValue.FilesDeleted.Add(innernode.Attributes["Item"].InnerText); break; } } return(returnValue); }