public static List <T> ToList <T>(this IQueryable result) { Collections.IEnumerator e = result.GetEnumerator(); List <T> l = new List <T>(); while (e.MoveNext()) { l.Add((T)e.Current); } return(l); }
// taken from bouncy castle SignedDataTest.cs private static bool VerifySignatures(CmsSignedData sp) { var signaturesValid = true; Org.BouncyCastle.X509.Store.IX509Store x509Certs = sp.GetCertificates("Collection"); SignerInformationStore signers = sp.GetSignerInfos(); foreach (SignerInformation signer in signers.GetSigners()) { Collections.ICollection certCollection = x509Certs.GetMatches(signer.SignerID); Collections.IEnumerator certEnum = certCollection.GetEnumerator(); certEnum.MoveNext(); Org.BouncyCastle.X509.X509Certificate cert = (Org.BouncyCastle.X509.X509Certificate)certEnum.Current; signaturesValid &= signer.Verify(cert); } return(signaturesValid); }
public void OleDbParameterCollection_MultipleScenarios_Success() { OleDbParameterCollection opc = command.Parameters; Assert.True(opc.Count == 0); Assert.False(opc.IsReadOnly); Assert.False(opc.IsFixedSize); Assert.False(opc.IsSynchronized); Assert.Throws <IndexOutOfRangeException>(() => opc[0].ParameterName); Assert.Throws <IndexOutOfRangeException>(() => opc["@p1"].ParameterName); Assert.Throws <ArgumentNullException>(() => opc.Add(null)); opc.Add((object)new OleDbParameter()); opc.Add((object)new OleDbParameter()); Collections.IEnumerator enm = opc.GetEnumerator(); Assert.True(enm.MoveNext()); Assert.Equal("Parameter1", ((OleDbParameter)enm.Current).ParameterName); Assert.True(enm.MoveNext()); Assert.Equal("Parameter2", ((OleDbParameter)enm.Current).ParameterName); opc.Add(new OleDbParameter(null, null)); opc.Add(null, OleDbType.Integer, 0, null); Assert.Equal("Parameter4", opc["Parameter4"].ParameterName); opc.Add(new OleDbParameter("Parameter5", OleDbType.LongVarWChar, 20)); opc.Add(new OleDbParameter(null, OleDbType.WChar, 20, "a")); opc.RemoveAt(opc[3].ParameterName); Assert.Equal(-1, opc.IndexOf(null)); Assert.False(opc.Contains(null)); Assert.Throws <IndexOutOfRangeException>(() => opc.RemoveAt(null)); OleDbParameter p = opc[0]; Assert.Throws <ArgumentException>(() => opc.Add((object)p)); Assert.Throws <ArgumentException>(() => new OleDbCommand().Parameters.Add(p)); Assert.Throws <ArgumentNullException>(() => opc.Remove(null)); string pname = p.ParameterName; p.ParameterName = pname; p.ParameterName = pname.ToUpper(); p.ParameterName = pname.ToLower(); p.ParameterName = "@p1"; p.ParameterName = pname; opc.Clear(); opc.Add(p); opc.Clear(); opc.AddWithValue("@p1", null); Assert.Equal(-1, opc.IndexOf(p.ParameterName)); opc[0] = p; Assert.Equal(0, opc.IndexOf(p.ParameterName)); Assert.True(opc.Contains(p.ParameterName)); Assert.True(opc.Contains(opc[0])); opc[0] = p; opc[p.ParameterName] = new OleDbParameter(p.ParameterName, null); opc[p.ParameterName] = (OleDbParameter)OleDbFactory.Instance.CreateParameter(); opc.RemoveAt(0); new OleDbCommand().Parameters.Clear(); new OleDbCommand().Parameters.CopyTo(new object[0], 0); Assert.False(new OleDbCommand().Parameters.GetEnumerator().MoveNext()); Assert.Throws <InvalidCastException>(() => new OleDbCommand().Parameters.Add(0)); Assert.Throws <ArgumentNullException>(() => new OleDbCommand().Parameters.AddRange(null)); Assert.Throws <InvalidCastException>(() => new OleDbCommand().Parameters.Insert(0, 0)); Assert.Throws <InvalidCastException>(() => new OleDbCommand().Parameters.Remove(0)); Assert.Throws <ArgumentException>(() => opc.Remove(new OleDbParameter())); }
/// <summary> /// Writes the body operation parameters associated with a ServiceAction. /// </summary> /// <param name="operationParameters">The list of operation parameters to write.</param> /// <param name="requestMessage">The OData request message used to write the operation parameters.</param> internal void WriteBodyOperationParameters(List <BodyOperationParameter> operationParameters, ODataRequestMessageWrapper requestMessage) { Debug.Assert(requestMessage != null, "requestMessage != null"); Debug.Assert(operationParameters != null, "operationParameters != null"); Debug.Assert(operationParameters.Any(), "operationParameters.Any()"); using (ODataMessageWriter messageWriter = Serializer.CreateMessageWriter(requestMessage, this.requestInfo, true /*isParameterPayload*/)) { ODataParameterWriter parameterWriter = messageWriter.CreateODataParameterWriter(null); parameterWriter.WriteStart(); foreach (OperationParameter operationParameter in operationParameters) { if (operationParameter.Value == null) { parameterWriter.WriteValue(operationParameter.Name, operationParameter.Value); } else { ClientEdmModel model = this.requestInfo.Model; IEdmType edmType = model.GetOrCreateEdmType(operationParameter.Value.GetType()); Debug.Assert(edmType != null, "edmType != null"); switch (edmType.TypeKind) { case EdmTypeKind.Collection: { Collections.IEnumerator enumerator = ((ICollection)operationParameter.Value).GetEnumerator(); ODataCollectionWriter collectionWriter = parameterWriter.CreateCollectionWriter(operationParameter.Name); ODataCollectionStart odataCollectionStart = new ODataCollectionStart(); collectionWriter.WriteStart(odataCollectionStart); while (enumerator.MoveNext()) { Object collectionItem = enumerator.Current; if (collectionItem == null) { throw new NotSupportedException(Strings.Serializer_NullCollectionParamterItemValue(operationParameter.Name)); } IEdmType edmItemType = model.GetOrCreateEdmType(collectionItem.GetType()); Debug.Assert(edmItemType != null, "edmItemType != null"); switch (edmItemType.TypeKind) { case EdmTypeKind.Complex: { Debug.Assert(model.GetClientTypeAnnotation(edmItemType).ElementType != null, "edmItemType.GetClientTypeAnnotation().ElementType != null"); ODataComplexValue complexValue = this.propertyConverter.CreateODataComplexValue( model.GetClientTypeAnnotation(edmItemType).ElementType, collectionItem, null /*propertyName*/, false /*isCollectionItem*/, null /*visitedComplexTypeObjects*/); Debug.Assert(complexValue != null, "complexValue != null"); collectionWriter.WriteItem(complexValue); break; } case EdmTypeKind.Primitive: { collectionWriter.WriteItem(collectionItem); break; } default: // EdmTypeKind.Entity // EdmTypeKind.Row // EdmTypeKind.EntityReference // EdmTypeKind.Enum. throw new NotSupportedException(Strings.Serializer_InvalidCollectionParamterItemType(operationParameter.Name, edmItemType.TypeKind)); } } collectionWriter.WriteEnd(); collectionWriter.Flush(); break; } case EdmTypeKind.Complex: { Debug.Assert(model.GetClientTypeAnnotation(edmType).ElementType != null, "model.GetClientTypeAnnotation(edmType).ElementType != null"); ODataComplexValue complexValue = this.propertyConverter.CreateODataComplexValue( model.GetClientTypeAnnotation(edmType).ElementType, operationParameter.Value, null /*propertyName*/, false /*isCollectionItemType*/, null /*visitedComplexTypeObjects*/); Debug.Assert(complexValue != null, "complexValue != null"); parameterWriter.WriteValue(operationParameter.Name, complexValue); break; } case EdmTypeKind.Primitive: parameterWriter.WriteValue(operationParameter.Name, operationParameter.Value); break; default: // EdmTypeKind.Entity // EdmTypeKind.Row // EdmTypeKind.EntityReference // EdmTypeKind.Enum. throw new NotSupportedException(Strings.Serializer_InvalidParameterType(operationParameter.Name, edmType.TypeKind)); } } // else } // foreach parameterWriter.WriteEnd(); parameterWriter.Flush(); } }