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
- ByteAnimationBase.cs
- EventLogStatus.cs
- CompoundFileDeflateTransform.cs
- ClientOptions.cs
- UnsafeNativeMethods.cs
- DataSetUtil.cs
- TaiwanCalendar.cs
- HttpCachePolicyBase.cs
- JsonServiceDocumentSerializer.cs
- CLSCompliantAttribute.cs
- NavigationService.cs
- DiscoveryClientChannelBase.cs
- TextDecorations.cs
- TreeViewAutomationPeer.cs
- printdlgexmarshaler.cs
- TableDetailsRow.cs
- DbParameterCollection.cs
- Variant.cs
- ObjectKeyFrameCollection.cs
- EmptyStringExpandableObjectConverter.cs
- BufferedOutputStream.cs
- CommandField.cs
- OpenTypeLayout.cs
- DetailsViewPagerRow.cs
- LineInfo.cs
- XmlFormatExtensionPointAttribute.cs
- FlatButtonAppearance.cs
- TreeViewHitTestInfo.cs
- TrackingExtract.cs
- PeerCustomResolverElement.cs
- JsonReader.cs
- CultureMapper.cs
- ClaimComparer.cs
- AnnotationComponentChooser.cs
- SystemNetworkInterface.cs
- HtmlShimManager.cs
- ScrollBarRenderer.cs
- UrlAuthFailedErrorFormatter.cs
- InternalBase.cs
- ObjectItemAssemblyLoader.cs
- DrawingAttributeSerializer.cs
- SuppressIldasmAttribute.cs
- LocatorGroup.cs
- BindingWorker.cs
- Odbc32.cs
- BaseProcessor.cs
- ContactManager.cs
- ListenerAdapterBase.cs
- WebSysDisplayNameAttribute.cs
- XmlNamespaceDeclarationsAttribute.cs
- ObjectView.cs
- SchemaImporterExtension.cs
- ActiveDocumentEvent.cs
- CachedBitmap.cs
- SuppressedPackageProperties.cs
- QuadTree.cs
- SourceItem.cs
- StringDictionary.cs
- DesignerOptionService.cs
- NativeMethods.cs
- MenuEventArgs.cs
- ProcessThread.cs
- TrailingSpaceComparer.cs
- GridViewEditEventArgs.cs
- SecurityPolicySection.cs
- SecuritySessionClientSettings.cs
- StateItem.cs
- BitmapSizeOptions.cs
- SQLBytesStorage.cs
- GraphicsState.cs
- SimpleHandlerFactory.cs
- RegexStringValidatorAttribute.cs
- BamlTreeMap.cs
- RectConverter.cs
- CheckBoxAutomationPeer.cs
- RangeValuePatternIdentifiers.cs
- CodeRegionDirective.cs
- SequentialActivityDesigner.cs
- SkipStoryboardToFill.cs
- ValidationPropertyAttribute.cs
- SqlDelegatedTransaction.cs
- CodePrimitiveExpression.cs
- ExpandedWrapper.cs
- DbParameterHelper.cs
- DocumentReference.cs
- ThreadPool.cs
- DiscoveryViaBehavior.cs
- WindowsTooltip.cs
- UiaCoreProviderApi.cs
- SkipStoryboardToFill.cs
- KnownBoxes.cs
- XmlSchemaObjectTable.cs
- SystemWebSectionGroup.cs
- ActivationServices.cs
- CodeExporter.cs
- XomlCompilerResults.cs
- FigureParagraph.cs
- DataGridItemCollection.cs
- StartUpEventArgs.cs
- ModuleBuilder.cs