示例#1
0
 public CachingListViewItem(CachingItem item, CachingPage page)
     : base(item.Extension)
 {
     this.Item = item;
     _page     = page;
     this.SubItems.Add(new ListViewSubItem(this, ToString(item.Policy)));
     this.SubItems.Add(new ListViewSubItem(this, ToString(item.KernelCachePolicy)));
     this.SubItems.Add(new ListViewSubItem(this, item.Flag));
 }
示例#2
0
        public CachingAdvancedDialog(IServiceProvider serviceProvider, CachingItem item, CachingFeature feature)
            : base(serviceProvider)
        {
            InitializeComponent();
            cbString.Checked = !string.IsNullOrWhiteSpace(item.VaryByQueryString);
            txtString.Text   = item.VaryByQueryString;

            cbHeaders.Checked = !string.IsNullOrWhiteSpace(item.VaryByHeaders);
            txtHeaders.Text   = item.VaryByHeaders;

            var container = new CompositeDisposable();

            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
            {
                item.VaryByHeaders     = txtHeaders.Text;
                item.VaryByQueryString = txtString.Text;
                DialogResult           = DialogResult.OK;
            }));

            container.Add(
                Observable.FromEventPattern <EventArgs>(cbString, "CheckedChanged")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
            {
                txtString.Enabled = cbString.Checked;
                if (!cbString.Checked)
                {
                    txtString.Text = string.Empty;
                }
            }));

            container.Add(
                Observable.FromEventPattern <EventArgs>(cbHeaders, "CheckedChanged")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
            {
                txtHeaders.Enabled = cbHeaders.Checked;
                if (!cbHeaders.Checked)
                {
                    txtHeaders.Text = string.Empty;
                }
            }));

            container.Add(
                Observable.FromEventPattern <CancelEventArgs>(this, "HelpButtonClicked")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(EnvironmentVariableTarget =>
            {
                feature.ShowHelp();
            }));
        }
示例#3
0
        public CachingAdvancedDialog(IServiceProvider serviceProvider, CachingItem item)
            : base(serviceProvider)
        {
            InitializeComponent();
            cbString.Checked = !string.IsNullOrWhiteSpace(item.VaryByQueryString);
            txtString.Text   = item.VaryByQueryString;

            cbHeaders.Checked = !string.IsNullOrWhiteSpace(item.VaryByHeaders);
            txtHeaders.Text   = item.VaryByHeaders;

            var container = new CompositeDisposable();

            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnOK, "Click")
                .Subscribe(evt =>
            {
                item.VaryByHeaders     = txtHeaders.Text;
                item.VaryByQueryString = txtString.Text;
                DialogResult           = DialogResult.OK;
            }));

            container.Add(
                Observable.FromEventPattern <EventArgs>(cbString, "CheckedChanged")
                .Subscribe(evt =>
            {
                txtString.Enabled = cbString.Checked;
                if (!cbString.Checked)
                {
                    txtString.Text = string.Empty;
                }
            }));

            container.Add(
                Observable.FromEventPattern <EventArgs>(cbHeaders, "CheckedChanged")
                .Subscribe(evt =>
            {
                txtHeaders.Enabled = cbHeaders.Checked;
                if (!cbHeaders.Checked)
                {
                    txtHeaders.Text = string.Empty;
                }
            }));
        }
        public NewCachingDialog(IServiceProvider serviceProvider, CachingItem existing, CachingFeature feature)
            : base(serviceProvider)
        {
            InitializeComponent();
            Text     = existing == null ? "Add Cache Rule" : "Edit Cache Rule";
            _feature = feature;
            Item     = existing ?? new CachingItem(null);
            if (existing == null)
            {
                return;
            }

            txtExtension.Text  = Item.Extension;
            cbUser.Checked     = Item.Policy != 0L;
            rbUserFile.Checked = Item.Policy == 1L;
            rbUserTime.Checked = Item.Policy == 2L;
            rbUserNo.Checked   = Item.Policy == 3L;

            cbKernel.Checked     = Item.KernelCachePolicy != 0L;
            rbKernelFile.Checked = Item.KernelCachePolicy == 1L;
            rbKernelTime.Checked = Item.KernelCachePolicy == 2L;
            rbKernelNo.Checked   = Item.KernelCachePolicy == 3L;

            txtKernelTime.Text = txtUserTime.Text = Item.Duration.ToString();

            var container = new CompositeDisposable();

            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnOK, "Click")
                .Subscribe(evt =>
            {
                Item.Extension = txtExtension.Text;
                Item.Duration  = TimeSpan.Parse(txtKernelTime.Text);
                if (!cbUser.Checked)
                {
                    Item.Policy = 0L;
                }
                else if (rbUserFile.Checked)
                {
                    Item.Policy = 1L;
                }
                else if (rbUserTime.Checked)
                {
                    Item.Policy = 2L;
                }
                else if (rbUserNo.Checked)
                {
                    Item.Policy = 3L;
                }

                if (!cbKernel.Checked)
                {
                    Item.KernelCachePolicy = 0L;
                }
                else if (rbKernelFile.Checked)
                {
                    Item.KernelCachePolicy = 1L;
                }
                else if (rbKernelTime.Checked)
                {
                    Item.KernelCachePolicy = 2L;
                }
                else if (rbKernelNo.Checked)
                {
                    Item.KernelCachePolicy = 3L;
                }

                if (_feature.Items.Any(item => item.Match(Item)))
                {
                    ShowMessage(
                        "This rule already exists.",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error,
                        MessageBoxDefaultButton.Button1);
                    return;
                }

                DialogResult = DialogResult.OK;
            }));

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnAdvanced, "Click")
                .Subscribe(evt =>
            {
                var dialog = new CachingAdvancedDialog(ServiceProvider, Item);
                dialog.ShowDialog();
            }));

            container.Add(
                Observable.FromEventPattern <EventArgs>(txtExtension, "TextChanged")
                .Subscribe(evt =>
            {
                btnOK.Enabled = !string.IsNullOrWhiteSpace(txtExtension.Text);
            }));
        }