public void SaveSignalModel() { //Check Database for _TSF.name //If not found add it //walk through attributes //check for attribute names //if not found add them var dao = new SignalDAO(); dbSignal dataSignal = dao.getSignal(_name, _signalNameSpace); dbSignal baseSignal = dao.getSignal(_baseSignalName, _baseSignalNameSpace); if (dataSignal == null) { dataSignal = new dbSignal(); dataSignal.parentSignalId = baseSignal != null ? baseSignal.signalId : 0; dataSignal.xmlns = _signalNameSpace; dataSignal.signalName = _name; dataSignal.uuid = Guid.Parse(_tsf.uuid); dataSignal.save(); } foreach (SignalAttribute attr in _attributes) { bool hasAttribute = dao.hasAttribute(dataSignal.signalId, attr.Name); dbSignalAttribute dbAttribute; if (!hasAttribute) { dbAttribute = new dbSignalAttribute(); } else { dbAttribute = dao.GetAttribute(dataSignal.signalId, attr.Name); } dbAttribute.DataState = hasAttribute ? BASEBean.eDataState.DS_EDIT : BASEBean.eDataState.DS_ADD; dbAttribute.attributeName = attr.Name; dbAttribute.signalId = dataSignal.signalId; dbAttribute.defaultValue = attr.DefaultValue; dbAttribute.fixedValue = attr.FixedValue; dbAttribute.type = attr.SchemaType; dbAttribute.save(); } }