Esempio n. 1
0
        // 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 );
                }
            }
        }
Esempio n. 2
0
        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 );
        }
Esempio n. 3
0
        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 );
        }
Esempio n. 4
0
        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;
        }