Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / SelectedDatesCollection.cs / 1305376 / SelectedDatesCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; ////// public sealed class SelectedDatesCollection : ICollection { private ArrayList dateList; ///Encapsulates the collection of ///within a control. /// public SelectedDatesCollection(ArrayList dateList) { this.dateList = dateList; } ///Initializes a new instance of the ///class /// with the specified date list. /// public int Count { get { return dateList.Count; } } ///Gets the item count of the collection. ////// public DateTime this[int index] { get { return(DateTime) dateList[index]; } } ///Gets a ///referenced by the specified ordinal index value in the collection. /// public void Add(DateTime date) { int index; if (!FindIndex(date.Date, out index)) { dateList.Insert(index, date.Date); } } ///Adds the specified ///to the end of the collection. /// public void Clear() { dateList.Clear(); } ///Removes all ///controls from the collection. /// public bool Contains(DateTime date) { int index; return FindIndex(date.Date, out index); } ///Returns a value indicating whether the collection contains the specified /// date. ////// 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; } ////// public IEnumerator GetEnumerator() { return dateList.GetEnumerator(); } ///Returns an enumerator of all ///controls within the collection. /// public void CopyTo(Array array, int index) { for (IEnumerator e = this.GetEnumerator(); e.MoveNext();) array.SetValue(e.Current, index++); } ///Copies contents from the collection to a specified ///with a /// specified starting index. /// public Object SyncRoot { get { return this;} } ///Gets the object that can be used to synchronize access to the collection. In /// this case, it is the collection itself. ////// public bool IsReadOnly { get { return false;} } ///Gets a value indicating whether the collection is read-only. ////// public bool IsSynchronized { get { return false;} } ///Gets a value indicating whether access to the collection is synchronized /// (thread-safe). ////// public void Remove(DateTime date) { int index; if (FindIndex(date.Date, out index)) { dateList.RemoveAt(index); } } ///Removes the specified date from the collection. ////// 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. //------------------------------------------------------------------------------ //Sets the contents of the ///to span /// across the specified date range. // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; ////// public sealed class SelectedDatesCollection : ICollection { private ArrayList dateList; ///Encapsulates the collection of ///within a control. /// public SelectedDatesCollection(ArrayList dateList) { this.dateList = dateList; } ///Initializes a new instance of the ///class /// with the specified date list. /// public int Count { get { return dateList.Count; } } ///Gets the item count of the collection. ////// public DateTime this[int index] { get { return(DateTime) dateList[index]; } } ///Gets a ///referenced by the specified ordinal index value in the collection. /// public void Add(DateTime date) { int index; if (!FindIndex(date.Date, out index)) { dateList.Insert(index, date.Date); } } ///Adds the specified ///to the end of the collection. /// public void Clear() { dateList.Clear(); } ///Removes all ///controls from the collection. /// public bool Contains(DateTime date) { int index; return FindIndex(date.Date, out index); } ///Returns a value indicating whether the collection contains the specified /// date. ////// 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; } ////// public IEnumerator GetEnumerator() { return dateList.GetEnumerator(); } ///Returns an enumerator of all ///controls within the collection. /// public void CopyTo(Array array, int index) { for (IEnumerator e = this.GetEnumerator(); e.MoveNext();) array.SetValue(e.Current, index++); } ///Copies contents from the collection to a specified ///with a /// specified starting index. /// public Object SyncRoot { get { return this;} } ///Gets the object that can be used to synchronize access to the collection. In /// this case, it is the collection itself. ////// public bool IsReadOnly { get { return false;} } ///Gets a value indicating whether the collection is read-only. ////// public bool IsSynchronized { get { return false;} } ///Gets a value indicating whether access to the collection is synchronized /// (thread-safe). ////// public void Remove(DateTime date) { int index; if (FindIndex(date.Date, out index)) { dateList.RemoveAt(index); } } ///Removes the specified date from the collection. ////// 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.Sets the contents of the ///to span /// across the specified date range.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SoapMessage.cs
- WebServiceAttribute.cs
- Timer.cs
- ResizingMessageFilter.cs
- DSASignatureDeformatter.cs
- KeyPressEvent.cs
- DictionaryContent.cs
- ExitEventArgs.cs
- NullableDecimalMinMaxAggregationOperator.cs
- Rotation3D.cs
- DynamicEndpoint.cs
- SchemaDeclBase.cs
- WriteStateInfoBase.cs
- XpsFont.cs
- TypeExtensionConverter.cs
- ObjectDataSourceSelectingEventArgs.cs
- xdrvalidator.cs
- _NTAuthentication.cs
- DeploymentSectionCache.cs
- remotingproxy.cs
- NumberSubstitution.cs
- Geometry.cs
- SqlDataSourceView.cs
- UnknownBitmapEncoder.cs
- Memoizer.cs
- TextElementAutomationPeer.cs
- QilStrConcat.cs
- Odbc32.cs
- LocatorPart.cs
- ReachVisualSerializerAsync.cs
- ChildChangedEventArgs.cs
- DataGridColumnCollection.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- StaticTextPointer.cs
- ChooseAction.cs
- FramingChannels.cs
- ReliableReplySessionChannel.cs
- ParentQuery.cs
- TransactionsSectionGroup.cs
- DataSourceDesigner.cs
- ThreadLocal.cs
- DynamicControl.cs
- SingleSelectRootGridEntry.cs
- DataReaderContainer.cs
- XamlStream.cs
- ServicesUtilities.cs
- BaseParagraph.cs
- WebPartConnectionsCancelVerb.cs
- StringDictionaryCodeDomSerializer.cs
- FragmentQueryKB.cs
- SmiEventSink_DeferedProcessing.cs
- CodeDomExtensionMethods.cs
- StrokeRenderer.cs
- StylusCaptureWithinProperty.cs
- TextViewElement.cs
- XPathSelfQuery.cs
- HttpWebRequest.cs
- ReachDocumentSequenceSerializerAsync.cs
- SqlTypesSchemaImporter.cs
- ObservableDictionary.cs
- SqlWebEventProvider.cs
- ListViewTableCell.cs
- TextEffectResolver.cs
- securestring.cs
- RegexCompilationInfo.cs
- Pen.cs
- ResourceSetExpression.cs
- ChineseLunisolarCalendar.cs
- FixUpCollection.cs
- MimeObjectFactory.cs
- XPathMultyIterator.cs
- CroppedBitmap.cs
- BaseValidator.cs
- EndEvent.cs
- GridViewRow.cs
- AttachedPropertyInfo.cs
- XmlUTF8TextReader.cs
- CodeAttributeArgumentCollection.cs
- PropertyEmitter.cs
- DbQueryCommandTree.cs
- WeakReference.cs
- ProfileSettings.cs
- RadioButton.cs
- NavigationService.cs
- UIServiceHelper.cs
- PackageRelationshipCollection.cs
- ContainerAction.cs
- InvalidDataException.cs
- AbsoluteQuery.cs
- MetafileHeaderWmf.cs
- FaultDesigner.cs
- dataSvcMapFileLoader.cs
- TileBrush.cs
- Path.cs
- AlternationConverter.cs
- ToolStripHighContrastRenderer.cs
- HttpCapabilitiesSectionHandler.cs
- UnmanagedHandle.cs
- PathFigureCollectionValueSerializer.cs
- TextDecorationCollection.cs