Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / WebControls / SelectedDatesCollection.cs / 1 / SelectedDatesCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.Security.Permissions;
///
/// Encapsulates the collection of within a control.
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class SelectedDatesCollection : ICollection {
private ArrayList dateList;
///
/// Initializes a new instance of the class
/// with the specified date list.
///
public SelectedDatesCollection(ArrayList dateList) {
this.dateList = dateList;
}
///
/// Gets the item count of the collection.
///
public int Count {
get {
return dateList.Count;
}
}
///
/// Gets a referenced by the specified ordinal index value in the collection.
///
public DateTime this[int index] {
get {
return(DateTime) dateList[index];
}
}
///
/// Adds the specified to the end of the collection.
///
public void Add(DateTime date) {
int index;
if (!FindIndex(date.Date, out index)) {
dateList.Insert(index, date.Date);
}
}
///
/// Removes all controls from the collection.
///
public void Clear() {
dateList.Clear();
}
///
/// Returns a value indicating whether the collection contains the specified
/// date.
///
public bool Contains(DateTime date) {
int index;
return FindIndex(date.Date, out index);
}
///
///
private bool FindIndex(DateTime date, out int index) {
int n = Count;
int Min = 0;
int Max = n;
while (Min < Max) {
index = (Min + Max ) / 2;
if (date == this[index]) {
return true;
}
if (date < this[index]) {
Max = index;
}
else {
Min = index + 1;
}
}
index = Min;
return false;
}
///
/// Returns an enumerator of all controls within the collection.
///
public IEnumerator GetEnumerator() {
return dateList.GetEnumerator();
}
///
/// Copies contents from the collection to a specified with a
/// specified starting index.
///
public void CopyTo(Array array, int index) {
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
array.SetValue(e.Current, index++);
}
///
/// Gets the object that can be used to synchronize access to the collection. In
/// this case, it is the collection itself.
///
public Object SyncRoot {
get { return this;}
}
///
/// Gets a value indicating whether the collection is read-only.
///
public bool IsReadOnly {
get { return false;}
}
///
/// Gets a value indicating whether access to the collection is synchronized
/// (thread-safe).
///
public bool IsSynchronized {
get { return false;}
}
///
/// Removes the specified date from the collection.
///
public void Remove(DateTime date) {
int index;
if (FindIndex(date.Date, out index)) {
dateList.RemoveAt(index);
}
}
///
/// Sets the contents of the to span
/// across the specified date range.
///
public void SelectRange(DateTime fromDate, DateTime toDate) {
dateList.Clear();
if (fromDate <= toDate) {
// The while loop below is safe that it is not attempting to add
// day beyond the last supported date because toDate can happen
// to be the last supported date.
dateList.Add(fromDate);
DateTime date = fromDate;
while (date < toDate) {
date = date.AddDays(1);
dateList.Add(date);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.Security.Permissions;
///
/// Encapsulates the collection of within a control.
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class SelectedDatesCollection : ICollection {
private ArrayList dateList;
///
/// Initializes a new instance of the class
/// with the specified date list.
///
public SelectedDatesCollection(ArrayList dateList) {
this.dateList = dateList;
}
///
/// Gets the item count of the collection.
///
public int Count {
get {
return dateList.Count;
}
}
///
/// Gets a referenced by the specified ordinal index value in the collection.
///
public DateTime this[int index] {
get {
return(DateTime) dateList[index];
}
}
///
/// Adds the specified to the end of the collection.
///
public void Add(DateTime date) {
int index;
if (!FindIndex(date.Date, out index)) {
dateList.Insert(index, date.Date);
}
}
///
/// Removes all controls from the collection.
///
public void Clear() {
dateList.Clear();
}
///
/// Returns a value indicating whether the collection contains the specified
/// date.
///
public bool Contains(DateTime date) {
int index;
return FindIndex(date.Date, out index);
}
///
///
private bool FindIndex(DateTime date, out int index) {
int n = Count;
int Min = 0;
int Max = n;
while (Min < Max) {
index = (Min + Max ) / 2;
if (date == this[index]) {
return true;
}
if (date < this[index]) {
Max = index;
}
else {
Min = index + 1;
}
}
index = Min;
return false;
}
///
/// Returns an enumerator of all controls within the collection.
///
public IEnumerator GetEnumerator() {
return dateList.GetEnumerator();
}
///
/// Copies contents from the collection to a specified with a
/// specified starting index.
///
public void CopyTo(Array array, int index) {
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
array.SetValue(e.Current, index++);
}
///
/// Gets the object that can be used to synchronize access to the collection. In
/// this case, it is the collection itself.
///
public Object SyncRoot {
get { return this;}
}
///
/// Gets a value indicating whether the collection is read-only.
///
public bool IsReadOnly {
get { return false;}
}
///
/// Gets a value indicating whether access to the collection is synchronized
/// (thread-safe).
///
public bool IsSynchronized {
get { return false;}
}
///
/// Removes the specified date from the collection.
///
public void Remove(DateTime date) {
int index;
if (FindIndex(date.Date, out index)) {
dateList.RemoveAt(index);
}
}
///
/// Sets the contents of the to span
/// across the specified date range.
///
public void SelectRange(DateTime fromDate, DateTime toDate) {
dateList.Clear();
if (fromDate <= toDate) {
// The while loop below is safe that it is not attempting to add
// day beyond the last supported date because toDate can happen
// to be the last supported date.
dateList.Add(fromDate);
DateTime date = fromDate;
while (date < toDate) {
date = date.AddDays(1);
dateList.Add(date);
}
}
}
}
}
// 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
- TransformerInfoCollection.cs
- Privilege.cs
- CorePropertiesFilter.cs
- Expander.cs
- XmlQueryOutput.cs
- Drawing.cs
- DependencyObject.cs
- DataGridViewCellStyle.cs
- ProfileModule.cs
- DataList.cs
- SqlProviderServices.cs
- XmlUrlResolver.cs
- CompensationDesigner.cs
- _ConnectStream.cs
- OrthographicCamera.cs
- ReadOnlyCollectionBase.cs
- IgnoreDataMemberAttribute.cs
- mediaeventargs.cs
- DesignerActionService.cs
- SQLConvert.cs
- ObfuscationAttribute.cs
- StaticExtension.cs
- SiteMapNode.cs
- SmtpCommands.cs
- MouseEvent.cs
- ReadOnlyMetadataCollection.cs
- SymbolMethod.cs
- SubpageParagraph.cs
- OperationFormatStyle.cs
- RoleManagerModule.cs
- LinqDataSourceEditData.cs
- EncryptedKey.cs
- ListViewDeleteEventArgs.cs
- ToolBar.cs
- ObjectDataSourceFilteringEventArgs.cs
- Drawing.cs
- SiteMapNodeItemEventArgs.cs
- PathFigureCollection.cs
- PolicyLevel.cs
- BitmapImage.cs
- DeobfuscatingStream.cs
- Debugger.cs
- DataGridViewCellCollection.cs
- XmlIlGenerator.cs
- SQLRoleProvider.cs
- FilteredDataSetHelper.cs
- ModuleElement.cs
- AllMembershipCondition.cs
- BrowserTree.cs
- coordinatorfactory.cs
- MemberAccessException.cs
- QilStrConcatenator.cs
- NullableFloatSumAggregationOperator.cs
- NotifyCollectionChangedEventArgs.cs
- BindableAttribute.cs
- EditorBrowsableAttribute.cs
- FolderLevelBuildProvider.cs
- ProviderSettingsCollection.cs
- ThreadStateException.cs
- Serializer.cs
- EnumerableCollectionView.cs
- LazyLoadBehavior.cs
- UnhandledExceptionEventArgs.cs
- RequestQueue.cs
- ContentElement.cs
- DataKeyArray.cs
- CounterCreationData.cs
- SystemInformation.cs
- TextElementEditingBehaviorAttribute.cs
- ToolStripGripRenderEventArgs.cs
- StringSorter.cs
- Int64.cs
- SerialErrors.cs
- ButtonBaseAdapter.cs
- WindowsAltTab.cs
- OptimizedTemplateContent.cs
- PropertyGridCommands.cs
- PerformanceCounterPermissionAttribute.cs
- RuntimeWrappedException.cs
- HtmlSelect.cs
- DataGridViewAdvancedBorderStyle.cs
- GroupBoxAutomationPeer.cs
- SessionEndedEventArgs.cs
- TokenBasedSet.cs
- DataRow.cs
- EntityViewContainer.cs
- HttpContext.cs
- GridViewColumnHeader.cs
- LinkLabelLinkClickedEvent.cs
- WorkflowFileItem.cs
- CancelRequestedRecord.cs
- SemanticResultKey.cs
- DbConnectionStringBuilder.cs
- UnsafeMethods.cs
- AttributeQuery.cs
- BinaryFormatterSinks.cs
- PassportAuthenticationEventArgs.cs
- ViewValidator.cs
- DataGridTextBoxColumn.cs
- DataRowView.cs