// I am LHS, Always favor Master public void Sync( XRegistry MergeReg, bool IsMaster, Func<XParameter, XParameter, bool> LHSWin ) { XParameter[] LHSs = Parameters(); XParameter[] RHSs = MergeReg.Parameters(); IEnumerable<XParameter> All = new List<XParameter>( LHSs ).Concat( RHSs ); foreach ( XParameter US in All ) { XParameter LHS = LHSs.Contains( US ) ? US : Parameter( US.Id ); XParameter RHS = RHSs.Contains( US ) ? US : MergeReg.Parameter( US.Id ); if ( LHS == null && !IsMaster ) { SetParameter( RHS ); } else if ( RHS == null && !IsMaster ) { RemoveParameter( LHS.Id ); } else if ( !( LHS == null || RHS == null ) ) { if ( !LHSWin( LHS, RHS ) ) SetParameter( RHS ); } } }
public SHMember() { WillLogin = false; AuthReg = new XRegistry( "<SHAuth />", FileLinks.ROOT_SETTING + FileLinks.SH_AUTH_REG ); XParameter MemberAuth = AuthReg.Parameter( "member-auth" ); if ( MemberAuth != null ) RestoreAuth( MemberAuth ); }
public static ProcConvoy RestoreParams( XRegistry Settings, object Payload = null ) { XParameter PPParams = Settings.Parameter( "PPValues" ); if ( PPParams == null ) return new ProcConvoy( new ProcPassThru(), Payload ); ProcParameter Proc = new ProcParameter(); Proc.SetParamDefs( Settings.Parameter( "PPValues" ) ); return new ProcConvoy( Proc, Payload ); }
public bool Open( XRegistry ZDef ) { IsLoading = true; try { XParameter Param = ZDef.Parameter( "Procedures" ); PM = new ProcManager( Param ); NotifyChanged( "ProcList" ); SetBanner(); return true; } catch( InvalidFIleException ) { ProcManager.PanelMessage( ID, () => Res.RSTR( "InvalidXML" ), LogType.ERROR ); } catch( Exception ex ) { Logger.Log( ID, ex.Message, LogType.ERROR ); } finally { IsLoading = false; } return false; }