Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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);
}
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NavigationWindowAutomationPeer.cs
- SystemIdentity.cs
- EntityClassGenerator.cs
- DesignerCommandAdapter.cs
- BaseParagraph.cs
- BulletedListEventArgs.cs
- ConnectionPoolManager.cs
- HMACMD5.cs
- VisualProxy.cs
- Exception.cs
- Semaphore.cs
- Stack.cs
- FileDialog_Vista.cs
- KeyFrames.cs
- CodeParameterDeclarationExpressionCollection.cs
- MultiplexingFormatMapping.cs
- XmlTypeMapping.cs
- ViewGenResults.cs
- SafeCryptHandles.cs
- DrawingVisual.cs
- SqlCommandSet.cs
- AllowedAudienceUriElement.cs
- AccessText.cs
- Literal.cs
- ListViewUpdateEventArgs.cs
- AnnotationElement.cs
- EventLogInformation.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- FunctionParameter.cs
- InheritanceContextHelper.cs
- Control.cs
- Model3D.cs
- FontFamilyIdentifier.cs
- DesignerView.xaml.cs
- RefreshPropertiesAttribute.cs
- backend.cs
- PropertyEmitter.cs
- SqlLiftIndependentRowExpressions.cs
- SimpleRecyclingCache.cs
- MonitoringDescriptionAttribute.cs
- WorkflowMarkupSerializerMapping.cs
- SiteMapDataSource.cs
- QilInvokeEarlyBound.cs
- Label.cs
- ThreadExceptionDialog.cs
- GregorianCalendarHelper.cs
- ResourceDictionaryCollection.cs
- ItemsChangedEventArgs.cs
- HttpConfigurationSystem.cs
- CompressStream.cs
- SingleAnimationBase.cs
- EncodingInfo.cs
- LayoutUtils.cs
- HighlightOverlayGlyph.cs
- TagPrefixAttribute.cs
- RawMouseInputReport.cs
- PropertyEmitter.cs
- KnownTypesHelper.cs
- CodeMethodInvokeExpression.cs
- TraceEventCache.cs
- TextParaClient.cs
- UrlAuthFailedErrorFormatter.cs
- RequestCacheManager.cs
- QilReplaceVisitor.cs
- DesignerExtenders.cs
- ChannelServices.cs
- MessageBodyMemberAttribute.cs
- SQLInt32.cs
- DispatcherObject.cs
- TableNameAttribute.cs
- ChangeConflicts.cs
- TreePrinter.cs
- EventLogPermissionEntry.cs
- PhonemeEventArgs.cs
- XslCompiledTransform.cs
- ScrollProviderWrapper.cs
- CodeArgumentReferenceExpression.cs
- SHA512Managed.cs
- TypefaceCollection.cs
- ValueSerializerAttribute.cs
- Timeline.cs
- ListenerElementsCollection.cs
- MatrixTransform.cs
- ContextMarshalException.cs
- ISAPIApplicationHost.cs
- RowTypeElement.cs
- PointAnimationBase.cs
- PageWrapper.cs
- Pen.cs
- DebugControllerThread.cs
- VirtualDirectoryMapping.cs
- tabpagecollectioneditor.cs
- UnauthorizedWebPart.cs
- TitleStyle.cs
- MobileControlDesigner.cs
- QuaternionAnimationBase.cs
- RouteValueDictionary.cs
- VirtualPathUtility.cs
- MessageEncodingBindingElementImporter.cs
- HatchBrush.cs