Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / Util / RouteParametersHelper.cs / 1305376 / RouteParametersHelper.cs
using System.Collections.Generic; using System.Diagnostics; using System.Web.UI.WebControls; namespace System.Web.DynamicData.Util { internal class RouteParametersHelper { private static Parameter CreateParameter(string name, string value, MetaColumn configurationColumn) { var param = new Parameter() { Name = name, DefaultValue = value }; DataSourceUtil.SetParameterTypeCodeAndDbType(param, configurationColumn); return param; } internal static IEnumerableGetColumnParameters(MetaTable table, string columnName) { if (String.IsNullOrEmpty(columnName)) { // If no column is specified, we're setting the primary key from the query string return GetPrimaryKeyParameters(table); } else { var column = table.GetColumn(columnName); var fkColumn = column as MetaForeignKeyColumn; if (fkColumn != null) { // Handle the case where we're setting one of our foreign keys from the query string return GetForeignKeyParameters(fkColumn); } else { // Handle other columns (e.g. booleans) return GetRegularColumnParameters(column); } } } internal static IEnumerable GetForeignKeyParameters(MetaForeignKeyColumn fkColumn) { Debug.Assert(fkColumn.ForeignKeyNames.Count == fkColumn.ParentTable.PrimaryKeyColumns.Count); var result = new List (); for (int i = 0; i < fkColumn.ForeignKeyNames.Count; i++) { string name = fkColumn.ForeignKeyNames[i]; string value = Misc.GetRouteValue(name); MetaColumn parentTablePKColumn = fkColumn.ParentTable.PrimaryKeyColumns[i]; var param = CreateParameter(name, value, parentTablePKColumn); result.Add(param); } return result; } internal static IEnumerable GetPrimaryKeyParameters(MetaTable table) { var result = new List (); foreach (var primaryKeyColumn in table.PrimaryKeyColumns) { string name = primaryKeyColumn.Name; string value = Misc.GetRouteValue(name); var param = CreateParameter(name, value, primaryKeyColumn); result.Add(param); } return result; } internal static IEnumerable GetRegularColumnParameters(MetaColumn column) { // Handle other columns (e.g. booleans) string name = column.Name; string value = Misc.GetRouteValue(name); var param = CreateParameter(name, value, column); return new List () { param }; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System.Collections.Generic; using System.Diagnostics; using System.Web.UI.WebControls; namespace System.Web.DynamicData.Util { internal class RouteParametersHelper { private static Parameter CreateParameter(string name, string value, MetaColumn configurationColumn) { var param = new Parameter() { Name = name, DefaultValue = value }; DataSourceUtil.SetParameterTypeCodeAndDbType(param, configurationColumn); return param; } internal static IEnumerable GetColumnParameters(MetaTable table, string columnName) { if (String.IsNullOrEmpty(columnName)) { // If no column is specified, we're setting the primary key from the query string return GetPrimaryKeyParameters(table); } else { var column = table.GetColumn(columnName); var fkColumn = column as MetaForeignKeyColumn; if (fkColumn != null) { // Handle the case where we're setting one of our foreign keys from the query string return GetForeignKeyParameters(fkColumn); } else { // Handle other columns (e.g. booleans) return GetRegularColumnParameters(column); } } } internal static IEnumerable GetForeignKeyParameters(MetaForeignKeyColumn fkColumn) { Debug.Assert(fkColumn.ForeignKeyNames.Count == fkColumn.ParentTable.PrimaryKeyColumns.Count); var result = new List (); for (int i = 0; i < fkColumn.ForeignKeyNames.Count; i++) { string name = fkColumn.ForeignKeyNames[i]; string value = Misc.GetRouteValue(name); MetaColumn parentTablePKColumn = fkColumn.ParentTable.PrimaryKeyColumns[i]; var param = CreateParameter(name, value, parentTablePKColumn); result.Add(param); } return result; } internal static IEnumerable GetPrimaryKeyParameters(MetaTable table) { var result = new List (); foreach (var primaryKeyColumn in table.PrimaryKeyColumns) { string name = primaryKeyColumn.Name; string value = Misc.GetRouteValue(name); var param = CreateParameter(name, value, primaryKeyColumn); result.Add(param); } return result; } internal static IEnumerable GetRegularColumnParameters(MetaColumn column) { // Handle other columns (e.g. booleans) string name = column.Name; string value = Misc.GetRouteValue(name); var param = CreateParameter(name, value, column); return new List () { param }; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WmlPanelAdapter.cs
- TreeIterator.cs
- Propagator.Evaluator.cs
- ContractCodeDomInfo.cs
- SelectionChangedEventArgs.cs
- RelationshipFixer.cs
- WindowsAuthenticationEventArgs.cs
- DataGridView.cs
- ContentDisposition.cs
- LinkButton.cs
- MergablePropertyAttribute.cs
- FormViewAutoFormat.cs
- NullableConverter.cs
- MailWriter.cs
- SchemaImporterExtensionsSection.cs
- ListDataBindEventArgs.cs
- InfoCardSymmetricAlgorithm.cs
- EpmSourceTree.cs
- PriorityRange.cs
- ObjectQueryExecutionPlan.cs
- Compiler.cs
- StylusPointPropertyId.cs
- BitmapEffectState.cs
- FamilyTypeface.cs
- XmlRawWriterWrapper.cs
- HttpCapabilitiesBase.cs
- AssertFilter.cs
- TraceLevelHelper.cs
- HtmlInputRadioButton.cs
- Parsers.cs
- Underline.cs
- SortedDictionary.cs
- FormsAuthentication.cs
- PeerNameRecordCollection.cs
- PartialArray.cs
- COM2EnumConverter.cs
- SmiEventSink.cs
- WebPartDescription.cs
- FixedDocument.cs
- FixUpCollection.cs
- Merger.cs
- Aggregates.cs
- ToolStripDropTargetManager.cs
- TextBoxRenderer.cs
- ErrorTableItemStyle.cs
- MachineKeySection.cs
- SecurityPolicyVersion.cs
- filewebresponse.cs
- SectionUpdates.cs
- OleDbRowUpdatedEvent.cs
- DbReferenceCollection.cs
- RuleSetReference.cs
- Solver.cs
- BitmapImage.cs
- AppearanceEditorPart.cs
- AssemblyBuilder.cs
- TriggerCollection.cs
- TcpPortSharing.cs
- SpecialNameAttribute.cs
- ApplicationHost.cs
- TraceLevelStore.cs
- MailMessage.cs
- XmlSchemaAny.cs
- StringReader.cs
- KeysConverter.cs
- UriTemplateVariableQueryValue.cs
- RegexCode.cs
- ThrowHelper.cs
- AlgoModule.cs
- QilInvokeLateBound.cs
- CustomTypeDescriptor.cs
- StretchValidation.cs
- EntityTransaction.cs
- RNGCryptoServiceProvider.cs
- LineBreak.cs
- ReadOnlyCollection.cs
- FileLogRecordStream.cs
- ProxySimple.cs
- StrokeCollection2.cs
- AdornerDecorator.cs
- HtmlImage.cs
- CallbackException.cs
- FtpWebResponse.cs
- ParallelTimeline.cs
- CodeFieldReferenceExpression.cs
- RegexCharClass.cs
- SerializerWriterEventHandlers.cs
- RegexWorker.cs
- DataGridViewButtonColumn.cs
- FtpWebResponse.cs
- PropertyPathWorker.cs
- FixedSOMFixedBlock.cs
- Delegate.cs
- TraceHandler.cs
- HttpPostClientProtocol.cs
- UnicastIPAddressInformationCollection.cs
- TaskFileService.cs
- ObservableCollection.cs
- brushes.cs
- PersistenceTypeAttribute.cs