public override List <ValidationMessage> ValidateElement() { var messages = base.ValidateElement(); void AddMessage(string code, ValidationLevel level, params object[] args) { messages.Add(new ValidationMessage(this, code, level) { MessageArguments = args }); } if (!ReferencedStuds.Any()) { if (ReplacementMeshes.Any()) { AddMessage("MODEL_STUDS_NOT_DEFINED_ALT", ValidationLevel.Warning); } else { AddMessage("MODEL_STUDS_NOT_DEFINED", ValidationLevel.Warning); } } else { messages.AddRange(ReferencedStuds.SelectMany(x => x.ValidateElement())); } return(messages); }
protected internal override void LoadFromXml(XElement element) { base.LoadFromXml(element); if (element.HasElement(nameof(ReplacementMeshes), out XElement geomElem)) { foreach (var elem in geomElem.Elements(ModelMeshReference.NODE_NAME)) { var mesh = new ModelMeshReference(); mesh.LoadFromXml(elem); ReplacementMeshes.Add(mesh); } } //LEGACY if (element.HasElement("Studs", out XElement studsElem)) { foreach (var studElem in studsElem.Elements(StudReference.NODE_NAME)) { var studRef = StudReference.FromXml(studElem); if (!string.IsNullOrEmpty(LegacyConnectionID)) { studRef.ConnectionID = LegacyConnectionID; } ReferencedStuds.Add(studRef); } } }