Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntityDesign / Design / System / Data / Entity / Design / PluralizationService / BidirectionalDictionary.cs / 1305376 / BidirectionalDictionary.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Globalization; namespace System.Data.Entity.Design.PluralizationServices { ////// This class provide service for both the singularization and pluralization, it takes the word pairs /// in the ctor following the rules that the first one is singular and the second one is plural. /// internal class BidirectionalDictionary{ internal Dictionary FirstToSecondDictionary { get; set; } internal Dictionary SecondToFirstDictionary { get; set; } internal BidirectionalDictionary() { this.FirstToSecondDictionary = new Dictionary (); this.SecondToFirstDictionary = new Dictionary (); } internal BidirectionalDictionary(Dictionary firstToSecondDictionary) : this() { foreach (var key in firstToSecondDictionary.Keys) { this.AddValue(key, firstToSecondDictionary[key]); } } internal virtual bool ExistsInFirst(TFirst value) { if (this.FirstToSecondDictionary.ContainsKey(value)) { return true; } return false; } internal virtual bool ExistsInSecond(TSecond value) { if (this.SecondToFirstDictionary.ContainsKey(value)) { return true; } return false; } internal virtual TSecond GetSecondValue(TFirst value) { if (this.ExistsInFirst(value)) { return this.FirstToSecondDictionary[value]; } else { return default(TSecond); } } internal virtual TFirst GetFirstValue(TSecond value) { if (this.ExistsInSecond(value)) { return this.SecondToFirstDictionary[value]; } else { return default(TFirst); } } internal void AddValue(TFirst firstValue, TSecond secondValue) { this.FirstToSecondDictionary.Add(firstValue, secondValue); if (!this.SecondToFirstDictionary.ContainsKey(secondValue)) { this.SecondToFirstDictionary.Add(secondValue, firstValue); } } } internal class StringBidirectionalDictionary : BidirectionalDictionary { internal StringBidirectionalDictionary() : base() { } internal StringBidirectionalDictionary(Dictionary firstToSecondDictionary) : base(firstToSecondDictionary) { } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] internal override bool ExistsInFirst(string value) { return base.ExistsInFirst(value.ToLowerInvariant()); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] internal override bool ExistsInSecond(string value) { return base.ExistsInSecond(value.ToLowerInvariant()); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] internal override string GetFirstValue(string value) { return base.GetFirstValue(value.ToLowerInvariant()); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] internal override string GetSecondValue(string value) { return base.GetSecondValue(value.ToLowerInvariant()); } } } // 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
- Matrix.cs
- SiteMapNode.cs
- XmlEventCache.cs
- FamilyMap.cs
- SplitContainer.cs
- XmlSecureResolver.cs
- XmlSchemaImport.cs
- FunctionMappingTranslator.cs
- MemberAssignment.cs
- CoTaskMemSafeHandle.cs
- XslNumber.cs
- DataColumn.cs
- FontUnit.cs
- ViewEventArgs.cs
- CreateUserWizard.cs
- DesignerAttributeInfo.cs
- ListCollectionView.cs
- PagesSection.cs
- HMACMD5.cs
- ConsumerConnectionPointCollection.cs
- LongMinMaxAggregationOperator.cs
- Deflater.cs
- HtmlForm.cs
- DrawingContextDrawingContextWalker.cs
- ExecutionEngineException.cs
- DataRowView.cs
- EncryptedPackage.cs
- AdRotator.cs
- ChtmlMobileTextWriter.cs
- ArgumentNullException.cs
- BrowserTree.cs
- AttributeSetAction.cs
- Encoding.cs
- EndPoint.cs
- PassportAuthentication.cs
- SessionPageStateSection.cs
- DBSchemaTable.cs
- ToolStripOverflowButton.cs
- XmlUrlEditor.cs
- EditorPartChrome.cs
- FormViewPagerRow.cs
- StringWriter.cs
- ModelItemDictionary.cs
- ObjectDataSourceFilteringEventArgs.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- smtpconnection.cs
- HealthMonitoringSectionHelper.cs
- WebServiceTypeData.cs
- PrintDialog.cs
- XmlSerializationWriter.cs
- ColumnTypeConverter.cs
- MetadataArtifactLoaderCompositeFile.cs
- TextFormatterContext.cs
- BitmapEffectState.cs
- DependencyObjectProvider.cs
- CustomTypeDescriptor.cs
- PointAnimationBase.cs
- HashHelper.cs
- StructuredTypeInfo.cs
- SecurityUtils.cs
- XmlToDatasetMap.cs
- HttpCookieCollection.cs
- WorkflowDesignerColors.cs
- HttpTransportSecurity.cs
- DefaultObjectMappingItemCollection.cs
- ExceptionUtil.cs
- PackageRelationshipSelector.cs
- Expression.cs
- TouchDevice.cs
- XmlComment.cs
- HttpHandlerAction.cs
- CodeGroup.cs
- GridItemPattern.cs
- SymLanguageVendor.cs
- ToolStripButton.cs
- ResourceCategoryAttribute.cs
- UInt16Storage.cs
- SqlConnection.cs
- WorkflowView.cs
- RelationshipConverter.cs
- EventKeyword.cs
- SystemColorTracker.cs
- TextCollapsingProperties.cs
- ImageKeyConverter.cs
- SplitterPanelDesigner.cs
- SqlTypeConverter.cs
- WinCategoryAttribute.cs
- WebPartConnectionsCancelEventArgs.cs
- IisTraceWebEventProvider.cs
- GeneralTransform3DGroup.cs
- SiteMapHierarchicalDataSourceView.cs
- TextEffect.cs
- PropertyInformationCollection.cs
- PlatformNotSupportedException.cs
- Point.cs
- InfoCardConstants.cs
- Rotation3D.cs
- ChildDocumentBlock.cs
- InputLanguageSource.cs
- TextChange.cs