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
- EntityContainerEmitter.cs
- FixedHighlight.cs
- ConfigDefinitionUpdates.cs
- RoleManagerModule.cs
- DbMetaDataColumnNames.cs
- AnimatedTypeHelpers.cs
- BlurBitmapEffect.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- DocumentPaginator.cs
- OpenFileDialog.cs
- CqlGenerator.cs
- ObjectSecurityT.cs
- WebConfigurationHostFileChange.cs
- OciLobLocator.cs
- DecimalAnimationUsingKeyFrames.cs
- CasesDictionary.cs
- TypePropertyEditor.cs
- SiteMapPath.cs
- DetailsViewModeEventArgs.cs
- Resources.Designer.cs
- TextSelectionHelper.cs
- Variant.cs
- WebServiceErrorEvent.cs
- ButtonFieldBase.cs
- Signature.cs
- ContextProperty.cs
- FontStretch.cs
- DBCommand.cs
- LayoutManager.cs
- ConnectionManagementElement.cs
- SoapReflectionImporter.cs
- WizardStepBase.cs
- TreeViewEvent.cs
- ToolTipService.cs
- IChannel.cs
- TreeChangeInfo.cs
- HttpDebugHandler.cs
- EntityWrapperFactory.cs
- FacetValueContainer.cs
- DurableEnlistmentState.cs
- PropertyBuilder.cs
- RemoteWebConfigurationHostStream.cs
- XpsFilter.cs
- X509ChainElement.cs
- ProfileSection.cs
- SerializationSectionGroup.cs
- HashCryptoHandle.cs
- FixedPage.cs
- commandenforcer.cs
- UndoManager.cs
- TransactionInformation.cs
- QilReplaceVisitor.cs
- SpellerStatusTable.cs
- ColorMap.cs
- AnnotationDocumentPaginator.cs
- OdbcUtils.cs
- StringCollectionMarkupSerializer.cs
- MergeFailedEvent.cs
- odbcmetadatafactory.cs
- Renderer.cs
- ResourceSet.cs
- Module.cs
- DataGridViewCheckBoxCell.cs
- EntityCommandDefinition.cs
- ClipboardData.cs
- AutoResizedEvent.cs
- ConfigurationElementProperty.cs
- CheckBoxStandardAdapter.cs
- TrackingStringDictionary.cs
- UncommonField.cs
- SettingsPropertyValue.cs
- MethodBuilder.cs
- SelectionProviderWrapper.cs
- GrammarBuilderDictation.cs
- RunWorkerCompletedEventArgs.cs
- RadioButtonList.cs
- SafeFileMappingHandle.cs
- Int32Collection.cs
- BitmapEffectCollection.cs
- RuntimeEnvironment.cs
- JulianCalendar.cs
- DataGridItem.cs
- DisposableCollectionWrapper.cs
- SortKey.cs
- httpstaticobjectscollection.cs
- GeneralTransform3DTo2DTo3D.cs
- TextControlDesigner.cs
- Stylesheet.cs
- VersionedStream.cs
- NumberAction.cs
- ProfileGroupSettings.cs
- RawStylusInput.cs
- FirstMatchCodeGroup.cs
- MultiTrigger.cs
- TextParagraphView.cs
- TableItemPattern.cs
- XmlSecureResolver.cs
- OpacityConverter.cs
- EventLogEntryCollection.cs
- ExpressionVisitorHelpers.cs