public override Boolean Load(long forId) { Boolean success = false; StringBuilder selectStatement = new StringBuilder(); System.Data.DataTable careMeasureTable; if (application.EnvironmentDatabase == null) { return(false); } selectStatement.Append("SELECT CareMeasure.*, "); selectStatement.Append(" CareMeasureDomain.CareMeasureDomainId, CareMeasureDomain.CareMeasureDomainName, CareMeasureClass.CareMeasureClassName "); selectStatement.Append(" FROM CareMeasure "); selectStatement.Append(" LEFT JOIN CareMeasureClass ON CareMeasure.CareMeasureClassId = CareMeasureClass.CareMeasureClassId"); selectStatement.Append(" LEFT JOIN CareMeasureDomain ON CareMeasureClass.CareMeasureDomainId = CareMeasureDomain.CareMeasureDomainId"); selectStatement.Append(" WHERE CareMeasureId = " + forId.ToString()); careMeasureTable = application.EnvironmentDatabase.SelectDataTable(selectStatement.ToString(), 0); if (careMeasureTable.Rows.Count == 1) { MapDataFields(careMeasureTable.Rows[0]); components = new List <CareMeasureComponent> (); System.Data.DataTable componentsTable = application.EnvironmentDatabase.SelectDataTable("SELECT * FROM dbo.CareMeasureComponent WHERE CareMeasureId = " + Id.ToString(), 0); foreach (System.Data.DataRow currentComponentRow in componentsTable.Rows) { CareMeasureComponent component = new CareMeasureComponent(application); component.MapDataFields(currentComponentRow); components.Add(component); } success = true; } else { success = false; } return(success); }
public override List <ImportExport.Result> XmlImport(System.Xml.XmlNode objectNode) { List <ImportExport.Result> response = base.XmlImport(objectNode); try { foreach (System.Xml.XmlNode currentNode in objectNode.ChildNodes) { switch (currentNode.Name) { case "Properties": foreach (System.Xml.XmlNode currentPropertyNode in currentNode.ChildNodes) { switch (currentPropertyNode.Attributes["Name"].InnerText) { case "CareMeasureDomainName": careMeasureDomainName = currentPropertyNode.InnerText; careMeasureDomainId = application.CoreObjectGetIdByName("CareMeasureDomain", careMeasureDomainName); break; default: break; } } break; case "Components": foreach (System.Xml.XmlNode currentComponentNode in currentNode.ChildNodes) { CareMeasureComponent component = new CareMeasureComponent(application); response.AddRange(component.XmlImport(currentComponentNode)); components.Add(component); } break; case "CareMeasureClass": // USES THE DOMAIN ID CAPTURED UNDER PROPERTIES careMeasureClassName = currentNode.Attributes["Name"].InnerText; CareMeasureClass careMeasureClass = application.CareMeasureClassGetByName(careMeasureDomainId, careMeasureClassName); if (careMeasureClass == null) { // DOES NOT EXIST, CREATE NEW FROM IMPORT careMeasureClass = new CareMeasureClass(application); response.AddRange(careMeasureClass.XmlImport(currentNode)); careMeasureDomainId = careMeasureClass.CareMeasureDomainId; careMeasureClassId = careMeasureClass.Id; if (careMeasureClassId == 0) { throw new ApplicationException("Unable to import Care Measure Class: " + currentNode.Attributes["Name"].InnerText + "."); } } break; } // switch (currentNode.Attributes["Name"].InnerText) { } // foreach (System.Xml.XmlNode currentNode in objectNode.ChildNodes) { // SAVE IMPORTED CLASS if (!Save()) { throw new ApplicationException("Unable to save Care Measure: " + Name + "."); } } catch (Exception importException) { response.Add(new ImportExport.Result(ObjectType, Name, importException)); } return(response); }