public PlatformData(int id, double x, double y, PlatformType type, PlatformMovementBaseData movementData, List <PlatformFeatureBaseData> featuresData)
 {
     Id           = id;
     X            = x;
     Y            = y;
     Type         = type;
     MovementData = movementData;
     FeaturesData = featuresData;
 }
        private static XElement GetPlatformMovementDataXml(PlatformMovementBaseData movementData)
        {
            XElement movementElement = new XElement("movement");

            movementElement.Add(DataAccessUtils.GetEnumAttribute("type", movementData.Type));

            if (movementData.Properties != null)
            {
                XElement propertiesElement = GetPropertiesDataXml(movementData.Properties);
                movementElement.Add(propertiesElement);
            }

            return(movementElement);
        }
        private static PlatformData GetPlatformData(XElement platformElement)
        {
            int          id   = platformElement.GetInt("id", -1);
            double       x    = platformElement.GetDouble("x");
            double       y    = platformElement.GetDouble("y");
            PlatformType type = platformElement.GetEnum <PlatformType>("type");

            XElement movementElement = platformElement.Element("movement");
            PlatformMovementBaseData movementData = GetPlatformMovementData(movementElement);

            XElement featuresElement = platformElement.Element("features");
            List <PlatformFeatureBaseData> featuresData = GetPlatformFeaturesData(featuresElement);

            PlatformData platformData = new PlatformData(id, x, y, type, movementData, featuresData);

            return(platformData);
        }