Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }