コード例 #1
0
        public void Update(ProgramSet progSet)
        {
            var old_progSet = this.progSet;

            this.progSet = progSet;

            UpdatePrograms(progSet.Programs);

            var old_progs = old_progSet.Programs.Values;
            var progs     = progSet.Programs.Values;

            if (!MiscFunc.IsEqual(old_progSet.config.Name, progSet.config.Name))
            {
                this.RaisePropertyChanged(nameof(Text));
            }
            if (!MiscFunc.IsEqual(old_progSet.config.Icon, progSet.config.Icon))
            {
                cachedIcon = null; this.RaisePropertyChanged(nameof(Icon));
            }

            if (!MiscFunc.IsEqual(old_progSet.config.Category, progSet.config.Category))
            {
                this.RaisePropertyChanged(nameof(Category));
            }
            if (!MiscFunc.IsEqual(old_progSet.config.NetAccess, progSet.config.NetAccess))
            {
                this.RaisePropertyChanged(nameof(Access));
                this.RaisePropertyChanged(nameof(AccessTag));
            }

            if (!MiscFunc.IsEqual(old_progs.Sum(t => t.RuleCount), progs.Sum(t => t.RuleCount)))
            {
                this.RaisePropertyChanged(nameof(Rules));
            }
            if (!MiscFunc.IsEqual(old_progs.Sum(t => t.AllowedCount), progs.Sum(t => t.AllowedCount)))
            {
                this.RaisePropertyChanged(nameof(Allowed));
            }
            if (!MiscFunc.IsEqual(old_progs.Sum(t => t.BlockedCount), progs.Sum(t => t.BlockedCount)))
            {
                this.RaisePropertyChanged(nameof(Blocked));
            }
            if (!MiscFunc.IsEqual(old_progSet.GetLastActivity(), progSet.GetLastActivity()))
            {
                this.RaisePropertyChanged(nameof(LastActivity));
            }

            if (!MiscFunc.IsEqual(old_progs.Sum(t => t.SocketCount), progs.Sum(t => t.SocketCount)))
            {
                this.RaisePropertyChanged(nameof(Sockets));
            }
            if (!MiscFunc.IsEqual(old_progs.Sum(t => (long)t.UploadRate), progs.Sum(t => (long)t.UploadRate)))
            {
                this.RaisePropertyChanged(nameof(UpRate));
            }
            if (!MiscFunc.IsEqual(old_progs.Sum(t => (long)t.DownloadRate), progs.Sum(t => (long)t.DownloadRate)))
            {
                this.RaisePropertyChanged(nameof(DownRate));
            }
            if (!MiscFunc.IsEqual(old_progs.Sum(t => (long)t.TotalUpload), progs.Sum(t => (long)t.TotalUpload)))
            {
                this.RaisePropertyChanged(nameof(UpTotal));
            }
            if (!MiscFunc.IsEqual(old_progs.Sum(t => (long)t.TotalDownload), progs.Sum(t => (long)t.TotalDownload)))
            {
                this.RaisePropertyChanged(nameof(DownTotal));
            }
        }