Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewAdvancedBorderStyle.cs / 1 / DataGridViewAdvancedBorderStyle.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Diagnostics; using System.ComponentModel; ///public sealed class DataGridViewAdvancedBorderStyle : ICloneable { private DataGridView owner; private bool all = true; private DataGridViewAdvancedCellBorderStyle banned1, banned2, banned3; private DataGridViewAdvancedCellBorderStyle top = DataGridViewAdvancedCellBorderStyle.None; private DataGridViewAdvancedCellBorderStyle left = DataGridViewAdvancedCellBorderStyle.None; private DataGridViewAdvancedCellBorderStyle right = DataGridViewAdvancedCellBorderStyle.None; private DataGridViewAdvancedCellBorderStyle bottom = DataGridViewAdvancedCellBorderStyle.None; /// public DataGridViewAdvancedBorderStyle() : this(null, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet) { } internal DataGridViewAdvancedBorderStyle(DataGridView owner) : this(owner, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet) { } /// /// Creates a new DataGridViewAdvancedBorderStyle. The specified owner will /// be notified when the values are changed. /// internal DataGridViewAdvancedBorderStyle(DataGridView owner, DataGridViewAdvancedCellBorderStyle banned1, DataGridViewAdvancedCellBorderStyle banned2, DataGridViewAdvancedCellBorderStyle banned3) { this.owner = owner; this.banned1 = banned1; this.banned2 = banned2; this.banned3 = banned3; } ///public DataGridViewAdvancedCellBorderStyle All { get { return this.all ? this.top : DataGridViewAdvancedCellBorderStyle.NotSet; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet || value == this.banned1 || value == this.banned2 || value == this.banned3) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "All")); } if (!this.all || this.top != value) { this.all = true; this.top = this.left = this.right = this.bottom = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Bottom { get { if (this.all) { return this.top; } return this.bottom; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Bottom")); } this.BottomInternal = value; } } internal DataGridViewAdvancedCellBorderStyle BottomInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.bottom != value)) { if (this.all) { if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.right = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.bottom = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Left { get { if (this.all) { return this.top; } return this.left; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Left")); } this.LeftInternal = value; } } internal DataGridViewAdvancedCellBorderStyle LeftInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.left != value)) { if ((this.owner != null && this.owner.RightToLeftInternal) && (value == DataGridViewAdvancedCellBorderStyle.InsetDouble || value == DataGridViewAdvancedCellBorderStyle.OutsetDouble)) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Left")); } if (this.all) { if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.right = DataGridViewAdvancedCellBorderStyle.Outset; } if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.bottom = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.left = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Right { get { if (this.all) { return this.top; } return this.right; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Right")); } this.RightInternal = value; } } internal DataGridViewAdvancedCellBorderStyle RightInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.right != value)) { if ((this.owner != null && !this.owner.RightToLeftInternal) && (value == DataGridViewAdvancedCellBorderStyle.InsetDouble || value == DataGridViewAdvancedCellBorderStyle.OutsetDouble)) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Right")); } if (this.all) { if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.bottom = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.right = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Top { get { return this.top; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Top")); } this.TopInternal = value; } } internal DataGridViewAdvancedCellBorderStyle TopInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.top != value)) { if (this.all) { if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.right = DataGridViewAdvancedCellBorderStyle.Outset; } if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.bottom = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.top = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// /// public override bool Equals(object other) { DataGridViewAdvancedBorderStyle dgvabsOther = other as DataGridViewAdvancedBorderStyle; if (dgvabsOther == null) { return false; } return dgvabsOther.all == this.all && dgvabsOther.top == this.top && dgvabsOther.left == this.left && dgvabsOther.bottom == this.bottom && dgvabsOther.right == this.right; } /// /// public override int GetHashCode() { return WindowsFormsUtils.GetCombinedHashCodes((int) this.top, (int) this.left, (int) this.bottom, (int) this.right); } /// /// public override string ToString() { return "DataGridViewAdvancedBorderStyle { All=" + this.All.ToString() + ", Left=" + this.Left.ToString() + ", Right=" + this.Right.ToString() + ", Top=" + this.Top.ToString() + ", Bottom=" + this.Bottom.ToString() + " }"; } /// /// object ICloneable.Clone() { DataGridViewAdvancedBorderStyle dgvabs = new DataGridViewAdvancedBorderStyle(this.owner, this.banned1, this.banned2, this.banned3); dgvabs.all = this.all; dgvabs.top = this.top; dgvabs.right = this.right; dgvabs.bottom = this.bottom; dgvabs.left = this.left; return dgvabs; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Diagnostics; using System.ComponentModel; ///public sealed class DataGridViewAdvancedBorderStyle : ICloneable { private DataGridView owner; private bool all = true; private DataGridViewAdvancedCellBorderStyle banned1, banned2, banned3; private DataGridViewAdvancedCellBorderStyle top = DataGridViewAdvancedCellBorderStyle.None; private DataGridViewAdvancedCellBorderStyle left = DataGridViewAdvancedCellBorderStyle.None; private DataGridViewAdvancedCellBorderStyle right = DataGridViewAdvancedCellBorderStyle.None; private DataGridViewAdvancedCellBorderStyle bottom = DataGridViewAdvancedCellBorderStyle.None; /// public DataGridViewAdvancedBorderStyle() : this(null, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet) { } internal DataGridViewAdvancedBorderStyle(DataGridView owner) : this(owner, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet, DataGridViewAdvancedCellBorderStyle.NotSet) { } /// /// Creates a new DataGridViewAdvancedBorderStyle. The specified owner will /// be notified when the values are changed. /// internal DataGridViewAdvancedBorderStyle(DataGridView owner, DataGridViewAdvancedCellBorderStyle banned1, DataGridViewAdvancedCellBorderStyle banned2, DataGridViewAdvancedCellBorderStyle banned3) { this.owner = owner; this.banned1 = banned1; this.banned2 = banned2; this.banned3 = banned3; } ///public DataGridViewAdvancedCellBorderStyle All { get { return this.all ? this.top : DataGridViewAdvancedCellBorderStyle.NotSet; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet || value == this.banned1 || value == this.banned2 || value == this.banned3) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "All")); } if (!this.all || this.top != value) { this.all = true; this.top = this.left = this.right = this.bottom = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Bottom { get { if (this.all) { return this.top; } return this.bottom; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Bottom")); } this.BottomInternal = value; } } internal DataGridViewAdvancedCellBorderStyle BottomInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.bottom != value)) { if (this.all) { if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.right = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.bottom = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Left { get { if (this.all) { return this.top; } return this.left; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Left")); } this.LeftInternal = value; } } internal DataGridViewAdvancedCellBorderStyle LeftInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.left != value)) { if ((this.owner != null && this.owner.RightToLeftInternal) && (value == DataGridViewAdvancedCellBorderStyle.InsetDouble || value == DataGridViewAdvancedCellBorderStyle.OutsetDouble)) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Left")); } if (this.all) { if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.right = DataGridViewAdvancedCellBorderStyle.Outset; } if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.bottom = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.left = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Right { get { if (this.all) { return this.top; } return this.right; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Right")); } this.RightInternal = value; } } internal DataGridViewAdvancedCellBorderStyle RightInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.right != value)) { if ((this.owner != null && !this.owner.RightToLeftInternal) && (value == DataGridViewAdvancedCellBorderStyle.InsetDouble || value == DataGridViewAdvancedCellBorderStyle.OutsetDouble)) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Right")); } if (this.all) { if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.bottom = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.right = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// public DataGridViewAdvancedCellBorderStyle Top { get { return this.top; } set { // Sequential enum. Valid values are 0x0 to 0x7 if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial)) { throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle)); } if (value == DataGridViewAdvancedCellBorderStyle.NotSet) { throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Top")); } this.TopInternal = value; } } internal DataGridViewAdvancedCellBorderStyle TopInternal { set { //Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value)); //Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet); if ((this.all && this.top != value) || (!this.all && this.top != value)) { if (this.all) { if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.right = DataGridViewAdvancedCellBorderStyle.Outset; } if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble) { this.bottom = DataGridViewAdvancedCellBorderStyle.Outset; } } this.all = false; this.top = value; if (this.owner != null) { this.owner.OnAdvancedBorderStyleChanged(this); } } } } /// /// public override bool Equals(object other) { DataGridViewAdvancedBorderStyle dgvabsOther = other as DataGridViewAdvancedBorderStyle; if (dgvabsOther == null) { return false; } return dgvabsOther.all == this.all && dgvabsOther.top == this.top && dgvabsOther.left == this.left && dgvabsOther.bottom == this.bottom && dgvabsOther.right == this.right; } /// /// public override int GetHashCode() { return WindowsFormsUtils.GetCombinedHashCodes((int) this.top, (int) this.left, (int) this.bottom, (int) this.right); } /// /// public override string ToString() { return "DataGridViewAdvancedBorderStyle { All=" + this.All.ToString() + ", Left=" + this.Left.ToString() + ", Right=" + this.Right.ToString() + ", Top=" + this.Top.ToString() + ", Bottom=" + this.Bottom.ToString() + " }"; } /// /// object ICloneable.Clone() { DataGridViewAdvancedBorderStyle dgvabs = new DataGridViewAdvancedBorderStyle(this.owner, this.banned1, this.banned2, this.banned3); dgvabs.all = this.all; dgvabs.top = this.top; dgvabs.right = this.right; dgvabs.bottom = this.bottom; dgvabs.left = this.left; return dgvabs; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CapabilitiesAssignment.cs
- InputManager.cs
- ParagraphVisual.cs
- Point3DAnimationBase.cs
- Decimal.cs
- ObjectStateFormatter.cs
- PagedControl.cs
- WinInetCache.cs
- QueryRelOp.cs
- MLangCodePageEncoding.cs
- RedistVersionInfo.cs
- IRCollection.cs
- ConnectionPoolManager.cs
- SymbolPair.cs
- DesigntimeLicenseContext.cs
- CryptographicAttribute.cs
- DispatcherTimer.cs
- PersistenceProvider.cs
- ColumnBinding.cs
- NumericUpDownAcceleration.cs
- CacheDependency.cs
- PublisherMembershipCondition.cs
- WebPartMenu.cs
- FormsAuthentication.cs
- CalloutQueueItem.cs
- TcpConnectionPool.cs
- WebControlAdapter.cs
- OdbcRowUpdatingEvent.cs
- SimplePropertyEntry.cs
- FileRecordSequenceHelper.cs
- LinqDataView.cs
- CheckPair.cs
- ByteStorage.cs
- TextContainerHelper.cs
- TypeSystem.cs
- FontConverter.cs
- _SingleItemRequestCache.cs
- XamlHttpHandlerFactory.cs
- FixedSOMTextRun.cs
- PrimaryKeyTypeConverter.cs
- DPAPIProtectedConfigurationProvider.cs
- ProcessRequestArgs.cs
- ScalarType.cs
- QilReplaceVisitor.cs
- RowBinding.cs
- filewebresponse.cs
- ToolStripContentPanel.cs
- ReadContentAsBinaryHelper.cs
- OleServicesContext.cs
- ItemChangedEventArgs.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SqlDependencyUtils.cs
- XmlSchemaComplexContent.cs
- TableRowCollection.cs
- ProcessingInstructionAction.cs
- DisplayNameAttribute.cs
- SafeNativeMethods.cs
- PopOutPanel.cs
- ValidatorCollection.cs
- CapabilitiesPattern.cs
- ReferentialConstraintRoleElement.cs
- BridgeDataReader.cs
- TextTreeInsertUndoUnit.cs
- QilStrConcat.cs
- StringDictionaryEditor.cs
- SkinBuilder.cs
- _NestedSingleAsyncResult.cs
- GroupLabel.cs
- ExceptionHandlers.cs
- BooleanProjectedSlot.cs
- PrimitiveType.cs
- GradientSpreadMethodValidation.cs
- HttpClientCertificate.cs
- FileUtil.cs
- InternalSafeNativeMethods.cs
- CoTaskMemHandle.cs
- CompiledRegexRunner.cs
- QueryExtender.cs
- VirtualPathUtility.cs
- BitmapMetadataBlob.cs
- WorkflowHostingEndpoint.cs
- StretchValidation.cs
- WsatServiceAddress.cs
- ResourcePermissionBaseEntry.cs
- SR.Designer.cs
- XamlStream.cs
- SqlCaseSimplifier.cs
- WindowsAuthenticationModule.cs
- handlecollector.cs
- CallbackValidatorAttribute.cs
- ListCollectionView.cs
- FactoryRecord.cs
- HMACRIPEMD160.cs
- CheckBox.cs
- ActivityValidationServices.cs
- SendMailErrorEventArgs.cs
- webproxy.cs
- RequestCacheManager.cs
- SourceChangedEventArgs.cs
- AnnouncementService.cs