private BasicOutboundInvoice ReadOutboundInvoiceFromDataReader(DbDataReader reader)
        {
            int outboundInvoiceId = reader.GetInt32(0);
            string customerName = reader.GetString(1);
            string invoiceAddressPaper = reader.GetString(2);
            string invoiceAddressMail = reader.GetString(3);
            int currencyId = reader.GetInt32(4);
            // double amount = reader.GetDouble(5);
            int organizationId = reader.GetInt32(6);
            int budgetId = reader.GetInt32(7);
            DateTime createdDateTime = reader.GetDateTime(8);
            int createdByPersonId = reader.GetInt32(9);
            DateTime dueDate = reader.GetDateTime(10);
            int reminderCount = reader.GetInt32(11);
            string reference = reader.GetString(12);
            bool domestic = reader.GetBoolean(13);
            bool open = reader.GetBoolean(14);
            bool sent = reader.GetBoolean(15);
            string securityCode = reader.GetString(16);
            string theirReference = reader.GetString(17);

            return new BasicOutboundInvoice(outboundInvoiceId, customerName, invoiceAddressPaper, invoiceAddressMail,
                                            currencyId, organizationId, budgetId, createdDateTime,
                                            createdByPersonId, dueDate, reminderCount, reference, domestic, open, sent, securityCode, theirReference);
        }
示例#2
0
        static private BasicChurnDataPoint ReadChurnDataPointFromDataReader (DbDataReader reader)
        {
            int personId = reader.GetInt32(0);
            int organizationId = reader.GetInt32(1);
            bool churn = reader.GetBoolean(2);
            DateTime decisionDateTime = reader.GetDateTime(3);
            DateTime expiryDateTime = reader.GetDateTime(4);

            return new BasicChurnDataPoint(churn ? ChurnDataType.Churn : ChurnDataType.Retention, decisionDateTime,
                                           expiryDateTime, personId, organizationId);
        }
示例#3
0
        private static BasicPerson ReadPersonFromDataReader (DbDataReader reader)
        {
            int personId = reader.GetInt32(0);
            string passwordHash = reader.GetString(1);
            string name = reader.GetString(2);
            string email = reader.GetString(3);
            string street = reader.GetString(4);
            string postalCode = reader.GetString(5);
            string cityName = reader.GetString(6);
            int countryId = reader.GetInt32(7);
            string phone = reader.GetString(8);
            int geographyId = reader.GetInt32(9);
            DateTime birthdate = reader.GetDateTime(10);
            int genderId = reader.GetInt32(11);


            // Fix broken names, emails

            email = email.ToLower().Trim();
            name = name.Trim();

            while (name.Contains("  "))
            {
                name = name.Replace("  ", " ");
            }


            return new BasicPerson(personId, passwordHash, name, email, street, postalCode, cityName, countryId, phone,
                                   geographyId, birthdate, (PersonGender)genderId);
        }
示例#4
0
 public static DateTime? GetDateTime(DbDataReader reader, int index)
 {
     if (reader.IsDBNull(index))
         return null;
     else
         return reader.GetDateTime(index);
 }
示例#5
0
        private BasicPWEvent ReadPWEventFromDataReader (DbDataReader reader)
        {
            int eventId = reader.GetInt32(0);
            EventType eventType = (EventType)Enum.Parse(typeof(EventType), reader.GetString(1));
            EventSource eventSource = (EventSource)Enum.Parse(typeof(EventSource), reader.GetString(2));
            int actingPersonId = reader.GetInt32(3);
            int affectedPersonId = reader.GetInt32(4);
            DateTime eventDateTime = reader.GetDateTime(5);
            DateTime processedDateTime = reader.GetDateTime(6);
            bool open = reader.GetBoolean(7);
            int organizationId = reader.GetInt32(8);
            int geographyId = reader.GetInt32(9);
            int parameterInt = reader.GetInt32(10);
            string parameterText = reader.GetString(11);

            return new BasicPWEvent(eventId, eventDateTime, open, processedDateTime, eventType, eventSource, actingPersonId,
                affectedPersonId, organizationId, geographyId, parameterInt, parameterText);
        }
        private static BasicExceptionLog ExceptionLogFromDataReader (DbDataReader reader)
        {

            int ExceptionId = reader.GetInt32(0);
            DateTime ExceptionDateTime = reader.GetDateTime(1);
            string Source = reader.GetString(2);
            string ExceptionText = reader.GetString(3);
            return new BasicExceptionLog(ExceptionId, ExceptionDateTime, Source, ExceptionText);
        }
示例#7
0
        private BasicPayrollItem ReadPayrollItemFromDataReader(DbDataReader reader)
        {
            int payrollItemId = reader.GetInt32(0);
            int personId = reader.GetInt32(1);
            int organizationId = reader.GetInt32(2);
            int countryId = reader.GetInt32(3);
            DateTime employedDate = reader.GetDateTime(4);
            int reportsToPersonId = reader.GetInt32(5);
            Int64 baseSalaryCents = reader.GetInt64(6);
            int budgetId = reader.GetInt32(7);
            bool open = reader.GetBoolean(8);
            DateTime terminatedDate = reader.GetDateTime(9);
            int subtractiveTaxLevelId = reader.GetInt32(10);
            double additiveTaxLevel = reader.GetDouble(11);

            return new BasicPayrollItem(payrollItemId, personId, organizationId, countryId, employedDate,
                reportsToPersonId, baseSalaryCents, budgetId, open, terminatedDate, subtractiveTaxLevelId, additiveTaxLevel);

        }
        private BasicInternalPoll ReadInternalPollFromDataReader(DbDataReader reader)
        {
            int internalPollId = reader.GetInt32(0);
            int organizationId = reader.GetInt32(1);
            int geographyId = reader.GetInt32(2);
            string name = reader.GetString(3);
            bool runningOpen = reader.GetBoolean(4);
            bool votingOpen = reader.GetBoolean(5);
            int maxVoteLength = reader.GetInt32(6);
            int createdByPersonId = reader.GetInt32(7);
            DateTime runningOpens = reader.GetDateTime(8);
            DateTime runningCloses = reader.GetDateTime(9);
            DateTime votingOpens = reader.GetDateTime(10);
            DateTime votingCloses = reader.GetDateTime(11);
            int resultsTypeId = reader.GetInt32(12);

            InternalPollResultsType resultsType = (InternalPollResultsType) resultsTypeId;

            return new BasicInternalPoll(internalPollId, createdByPersonId, organizationId, geographyId, name, runningOpen, votingOpen, maxVoteLength, runningOpens, runningCloses, votingOpens, votingCloses, resultsType);
        }
示例#9
0
        public SelectedSnapshot Map(DbDataReader reader)
        {
            var persistenceId = reader.GetString(0);
            var sequenceNr = reader.GetInt64(1);
            var timestamp = reader.GetDateTime(2);

            var metadata = new SnapshotMetadata(persistenceId, sequenceNr, timestamp);
            var snapshot = GetSnapshot(reader);

            return new SelectedSnapshot(metadata, snapshot);
        }
        private BasicInboundInvoice ReadInboundInvoiceFromDataReader(DbDataReader reader)
        {
            int inboundInvoiceId = reader.GetInt32(0);
            int organizationId = reader.GetInt32(1);
            DateTime createdDateTime = reader.GetDateTime(2);
            int createdByPersonId = reader.GetInt32(3);
            DateTime dueDate = reader.GetDateTime(4);
            Int64 amountCents = reader.GetInt64(5);
            int budgetId = reader.GetInt32(6);
            bool attested = reader.GetBoolean(7);
            bool open = reader.GetBoolean(8);
            string supplier = reader.GetString(9);
            string payToAccount = reader.GetString(10);
            string ocr = reader.GetString(11);
            string invoiceReference = reader.GetString(12);
            DateTime closedDateTime = reader.GetDateTime(13);
            int closedByPersonId = reader.GetInt32(14);

            return new BasicInboundInvoice(inboundInvoiceId, organizationId, createdDateTime, dueDate,
                                           amountCents, budgetId, supplier, payToAccount, ocr, invoiceReference,
                                           attested, open, closedDateTime, closedByPersonId);
        }
示例#11
0
 static int GetDateTime(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         System.Data.Common.DbDataReader obj = (System.Data.Common.DbDataReader)ToLua.CheckObject(L, 1, typeof(System.Data.Common.DbDataReader));
         int             arg0 = (int)LuaDLL.luaL_checknumber(L, 2);
         System.DateTime o    = obj.GetDateTime(arg0);
         ToLua.PushValue(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
示例#12
0
        private void mapValues(DbDataReader reader, object record)
        {
            foreach (var accessor in this.accessors) {
                var index = reader.GetOrdinal(accessor.Name);

                if (reader.IsDBNull(index)) {
                    continue;
                }

                if (accessor.PropertyType == typeof(string)) {
                    accessor.Set(record, reader.GetString(index));
                } else if (accessor.PropertyType == typeof(int) || accessor.PropertyType == typeof(int?)) {
                    accessor.Set(record, reader.GetInt32(index));
                } else if (accessor.PropertyType == typeof(long) || accessor.PropertyType == typeof(long?)) {
                    accessor.Set(record, reader.GetInt64(index));
                } else if (accessor.PropertyType == typeof(DateTime) || accessor.PropertyType == typeof(DateTime?)) {
                    accessor.Set(record, reader.GetDateTime(index));
                } else if (accessor.PropertyType == typeof(char) || accessor.PropertyType == typeof(char?)) {
                    accessor.Set(record, reader.GetChar(index));
                }
            }
        }
示例#13
0
        private BasicFinancialTransactionRow ReadFinancialTransactionRowFromDataReader(DbDataReader reader)
        {
            int rowId = reader.GetInt32(0);
            int accountId = reader.GetInt32(1);
            int transactionId = reader.GetInt32(2);
            Int64 amountCents = reader.GetInt64(3);
            DateTime createdDateTime = reader.GetDateTime(4);
            int createdByPersonId = reader.GetInt32(5);

            return new BasicFinancialTransactionRow(rowId, accountId, transactionId, amountCents, createdDateTime, createdByPersonId);
        }
 private List<IntTag> ParseReservationTags(DbDataReader dataReader, CultureInfo culture, int userTZ)
 {
     string temp = culture.DateTimeFormat.ShortDatePattern;
     if (temp.Contains("MM"))
         ;
     else
         temp = temp.Replace("M", "MM");
     if (temp.Contains("dd"))
         ;
     else
         temp = temp.Replace("d", "dd");
     string dateF = temp + " HH" + culture.DateTimeFormat.TimeSeparator + "mm";
     List<IntTag> tags = new List<IntTag>();
     while (dataReader.Read())
     {
         //t R.Reservation_Info_ID,R.Start_Time, R.End_Time, E.Lab_Client_Name, C.Group_Name,C.Service_Broker_Name
         IntTag t = new IntTag();
         StringBuilder buf = new StringBuilder();
         t.id = dataReader.GetInt32(0);
         buf.Append(DateUtil.ToUserTime(DateUtil.SpecifyUTC(dataReader.GetDateTime(1)), culture, userTZ, dateF) + " - ");
         buf.Append(DateUtil.ToUserTime(DateUtil.SpecifyUTC(dataReader.GetDateTime(2)), culture, userTZ, dateF) + " ");
         buf.Append(dataReader.GetString(3) + " ");
         buf.Append(dataReader.GetString(4) + ":");
         buf.Append(dataReader.GetString(5));
         //buf.Append(" " +dataReader.GetInt32(6));
         t.tag = buf.ToString();
         tags.Add(t);
     }
     return tags;
 }
示例#15
0
文件: Json.cs 项目: honj51/ideacode
    /// <summary>
    /// DataReader转换为Json
    /// </summary>
    /// <param name="dataReader">DataReader对象</param>
    /// <returns>Json字符串</returns>
    public static string ToJson(DbDataReader dataReader)
    {
        string jsonString = "[";
        while (dataReader.Read())
        {
            jsonString += "{";

            for (int i = 0; i < dataReader.FieldCount; i++)
            {
                jsonString += "\"" + ToJson(dataReader.GetName(i)) + "\":";
                Type type = dataReader.GetFieldType(i);
                if (type == typeof(DateTime))
                {
                    if (!dataReader.IsDBNull(i))
                    {
                        DateTime dt = dataReader.GetDateTime(i);
                        jsonString += "\"" + ToJson(dt.ToString("yyyy-MM-dd HH:mm:ss")) + "\",";
                    }
                    else
                    {
                        jsonString += "\"\",";
                    }
                }
                else if (type == typeof(string))
                {
                    jsonString += "\"" + ToJson(dataReader[i].ToString()) + "\",";
                }
                else if (type == typeof(Int32) || type == typeof(Int64) || type == typeof(Double) || type == typeof(Decimal))
                {
                    if (!dataReader.IsDBNull(i))
                    {
                        jsonString += ToJson(dataReader[i].ToString()) + ",";
                    }
                    else
                    {
                        jsonString += "\"\",";
                    }
                }
                else
                {
                    throw new Exception("未知类型:" + type.ToString());
                    //jsonString += ToJson(dataReader[i].ToString()) + ",";
                }
            }
            jsonString = DeleteLast(jsonString) + "},";
        }
        dataReader.Close();
        return DeleteLast(jsonString) + "]";
    }
        protected static Group readGroup(DbDataReader reader)
        {
            // select  g.Group_ID, g.Group_Type_ID,g.Associated_Group_ID, g.Date_Created, g.group_name,
            // g.description AS description, g.email, gt.description AS group_type
            Group grp = new Group();
            grp.groupID = reader.GetInt32(0);
            grp.groupTypeID = reader.GetInt32(1);
            grp.associatedGroupID = reader.GetInt32(2);
            grp.createTime = DateUtil.SpecifyUTC(reader.GetDateTime(3));
            grp.groupName = reader.GetString(4);
            if(!reader.IsDBNull(5))
                grp.description = reader.GetString(5);
            if (!reader.IsDBNull(6))
                grp.email = reader.GetString(6);
            grp.groupType = reader.GetString(7);

            return grp;
        }
示例#17
0
		MembershipUser GetUserFromReader (DbDataReader reader)
		{
			return new MembershipUser (this.Name, /* XXX is this right?  */
						   reader.GetString (0), /* name */
						   reader.GetGuid (1), /* providerUserKey */
						   reader.IsDBNull (2) ? null : reader.GetString (2), /* email */
						   reader.IsDBNull (3) ? null : reader.GetString (3), /* passwordQuestion */
						   reader.IsDBNull (4) ? null : reader.GetString (4), /* comment */
						   reader.GetBoolean (5), /* isApproved */
						   reader.GetBoolean (6), /* isLockedOut */
						   reader.GetDateTime (7).ToLocalTime (), /* creationDate */
						   reader.GetDateTime (8).ToLocalTime (), /* lastLoginDate */
						   reader.GetDateTime (9).ToLocalTime (), /* lastActivityDate */
						   reader.GetDateTime (10).ToLocalTime (), /* lastPasswordChangedDate */
						   reader.GetDateTime (11).ToLocalTime () /* lastLockoutDate */);
		}
示例#18
0
 public static DateTime non_null_dt(DbDataReader rs, int idx) {
     return rs.IsDBNull(idx) ? DateTime.MinValue : rs.GetDateTime(idx);
 }
示例#19
0
		X509CrlRecord LoadCrlRecord (DbDataReader reader, X509CrlParser parser, ref byte[] buffer)
		{
			var record = new X509CrlRecord ();

			for (int i = 0; i < reader.FieldCount; i++) {
				switch (reader.GetName (i).ToUpperInvariant ()) {
				case "CRL":
					record.Crl = DecodeX509Crl (reader, parser, i, ref buffer);
					break;
				case "THISUPDATE":
					record.ThisUpdate = reader.GetDateTime (i);
					break;
				case "NEXTUPDATE":
					record.NextUpdate = reader.GetDateTime (i);
					break;
				case "DELTA":
					record.IsDelta = reader.GetBoolean (i);
					break;
				case "ID":
					record.Id = reader.GetInt32 (i);
					break;
				}
			}

			return record;
		}
示例#20
0
		X509CertificateRecord LoadCertificateRecord (DbDataReader reader, X509CertificateParser parser, ref byte[] buffer)
		{
			var record = new X509CertificateRecord ();

			for (int i = 0; i < reader.FieldCount; i++) {
				switch (reader.GetName (i).ToUpperInvariant ()) {
				case "CERTIFICATE":
					record.Certificate = DecodeCertificate (reader, parser, i, ref buffer);
					break;
				case "PRIVATEKEY":
					record.PrivateKey = DecodePrivateKey (reader, i, ref buffer);
					break;
				case "ALGORITHMS":
					record.Algorithms = DecodeEncryptionAlgorithms (reader, i);
					break;
				case "ALGORITHMSUPDATED":
					record.AlgorithmsUpdated = reader.GetDateTime (i);
					break;
				case "TRUSTED":
					record.IsTrusted = reader.GetBoolean (i);
					break;
				case "ID":
					record.Id = reader.GetInt32 (i);
					break;
				}
			}

			return record;
		}
示例#21
0
        private BasicMembershipPaymentStatus ReadMembershipPaymentStatusFromDataReader (DbDataReader reader)
        {
            int membershipId = reader.GetInt32(0);
            int membershipPaymentStatusId = reader.GetInt32(1);
            DateTime statusDateTime = reader.GetDateTime(2);

            return new BasicMembershipPaymentStatus(membershipId, (MembershipPaymentStatus)membershipPaymentStatusId, statusDateTime);
        }
示例#22
0
        private static BasicMembership ReadMembershipFromDataReader (DbDataReader reader)
        {
            int membershipId = reader.GetInt32(0);
            int personId = reader.GetInt32(1);
            int organizationId = reader.GetInt32(2);
            bool active = reader.GetBoolean(3);
            DateTime expires = reader.GetDateTime(4);
            DateTime memberSince = reader.GetDateTime(5);
            DateTime dateTerminated = reader.GetDateTime(6);
            // bool terminatedAsInvalid = reader.GetBoolean(7);  Ignore this field for now

            return new BasicMembership(membershipId, personId, organizationId, memberSince, expires, active,
                                       dateTerminated);
        }
示例#23
0
        private BasicFinancialAccountRow ReadFinancialAccountRowFromDataReader (DbDataReader reader)
        {
            int accountId = reader.GetInt32(0);
            int transactionId = reader.GetInt32(1);
            DateTime transactionDateTime = reader.GetDateTime(2);
            string comment = reader.GetString(3);
            Int64 amountCents = reader.GetInt64(4);
            DateTime rowDateTime = reader.GetDateTime(5);
            int rowCreatedByPersonId = reader.GetInt32(6);

            return new BasicFinancialAccountRow(accountId, transactionId, transactionDateTime, comment, amountCents, rowDateTime, rowCreatedByPersonId);
        }
示例#24
0
        private BasicFinancialTransaction ReadFinancialTransactionFromDataReader (DbDataReader reader)
        {
            int transactionId = reader.GetInt32(0);
            int organizationId = reader.GetInt32(1);
            DateTime dateTime = reader.GetDateTime(2);
            string comment = reader.GetString(3);
            string importHash = reader.GetString(4);

            return new BasicFinancialTransaction(transactionId, organizationId, dateTime, comment, importHash);
        }
示例#25
0
        // Copy multiple fields from reader to SmiTypedGetterSetter
        //  Supports V200 code path, without damaging backward compat for V100 code.
        //  Main differences are supporting DbDataReader, and for binary, character, decimal and Udt types.
        //  Assumes caller enforces that reader and setter metadata are compatible
        internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, IList<SmiExtendedMetaData> metaData, DbDataReader reader) {
            for (int i = 0; i < metaData.Count; i++) {
                if (reader.IsDBNull(i)) {
                    ValueUtilsSmi.SetDBNull_Unchecked(sink, setters, i);
                }
                else {
                    switch (metaData[i].SqlDbType) {
                        case SqlDbType.BigInt:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int64));
                            SetInt64_Unchecked(sink, setters, i, reader.GetInt64(i));
                            break;
                        case SqlDbType.Binary:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray));
                            SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.Bit:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Boolean));
                            SetBoolean_Unchecked(sink, setters, i, reader.GetBoolean(i));
                            break;
                        case SqlDbType.Char:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.CharArray));
                            SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.DateTime:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime));
                            SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i));
                            break;
                        case SqlDbType.Decimal: { // block to scope sqlReader local to avoid conflicts
                                Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlDecimal));
                                // Support full fidelity for SqlDataReader
                                SqlDataReader sqlReader = reader as SqlDataReader;
                                if (null != sqlReader) {
                                    SetSqlDecimal_Unchecked(sink, setters, i, sqlReader.GetSqlDecimal(i));
                                }
                                else {
                                    SetSqlDecimal_Unchecked(sink, setters, i, new SqlDecimal(reader.GetDecimal(i)));
                                }
                            }
                            break;
                        case SqlDbType.Float:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Double));
                            SetDouble_Unchecked(sink, setters, i, reader.GetDouble(i));
                            break;
                        case SqlDbType.Image:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray));
                            SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.Int:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int32));
                            SetInt32_Unchecked(sink, setters, i, reader.GetInt32(i));
                            break;
                        case SqlDbType.Money:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlMoney));
                            SetSqlMoney_Checked(sink, setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i)));
                            break;
                        case SqlDbType.NChar:
                        case SqlDbType.NText:
                        case SqlDbType.NVarChar:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.CharArray));
                            SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.Real:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Single));
                            SetSingle_Unchecked(sink, setters, i, reader.GetFloat(i));
                            break;
                        case SqlDbType.UniqueIdentifier:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Guid));
                            SetGuid_Unchecked(sink, setters, i, reader.GetGuid(i));
                            break;
                        case SqlDbType.SmallDateTime:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime));
                            SetDateTime_Checked(sink, setters, i,metaData[i], reader.GetDateTime(i));
                            break;
                        case SqlDbType.SmallInt:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int16));
                            SetInt16_Unchecked(sink, setters, i, reader.GetInt16(i));
                            break;
                        case SqlDbType.SmallMoney:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlMoney));
                            SetSqlMoney_Checked(sink, setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i)));
                            break;
                        case SqlDbType.Text:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.CharArray));
                            SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.Timestamp:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray));
                            SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.TinyInt:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Byte));
                            SetByte_Unchecked(sink, setters, i, reader.GetByte(i));
                            break;
                        case SqlDbType.VarBinary:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray));
                            SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.VarChar:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.String));
                            SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;
                        case SqlDbType.Xml: {
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlXml));
                                SqlDataReader sqlReader = reader as SqlDataReader;
                                if (null != sqlReader) {
                                    SetSqlXml_Unchecked(sink, setters, i, sqlReader.GetSqlXml(i));
                                }
                                else {
                                    SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                                }
                            }
                            break;
                        case SqlDbType.Variant: {  // block to scope sqlReader local and avoid conflicts
                                // Support better options for SqlDataReader
                                SqlDataReader sqlReader = reader as SqlDataReader;
                                SqlBuffer.StorageType storageType = SqlBuffer.StorageType.Empty;
                                object o;
                                if (null != sqlReader) {
                                    o = sqlReader.GetSqlValue(i);
                                    storageType = sqlReader.GetVariantInternalStorageType(i);
                                }
                                else {
                                    o = reader.GetValue(i);
                                }
                                ExtendedClrTypeCode typeCode = MetaDataUtilsSmi.DetermineExtendedTypeCodeForUseWithSqlDbType(metaData[i].SqlDbType, metaData[i].IsMultiValued, o, null,
                                    // 

                                    SmiContextFactory.KatmaiVersion
                                    );
                                if ((storageType == SqlBuffer.StorageType.DateTime2) || (storageType == SqlBuffer.StorageType.Date))
                                    SetCompatibleValueV200(sink, setters, i, metaData[i], o, typeCode, 0, 0, null, storageType);
                                else
                                    SetCompatibleValueV200(sink, setters, i, metaData[i], o, typeCode, 0, 0, null);
                            }
                            break;

                        case SqlDbType.Udt:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray));
                            // Skip serialization for Udt types.
                            SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                            break;

                        // SqlDbType.Structured should have been caught before this point for TVPs.  SUDTs will still need to implement.

                        case SqlDbType.Date:
                        case SqlDbType.DateTime2:
                            Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime));
                            SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i));
                            break;
                        case SqlDbType.Time: { // block to scope sqlReader local and avoid conflicts
                                Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.TimeSpan));
                                SqlDataReader sqlReader = reader as SqlDataReader;
                                TimeSpan ts;
                                if (null != sqlReader) {
                                    ts = sqlReader.GetTimeSpan(i);
                                } else {
                                    ts = (TimeSpan)reader.GetValue(i);
                                }
                                SetTimeSpan_Checked(sink, setters, i, metaData[i], ts);
                            }
                            break;
                        case SqlDbType.DateTimeOffset: { // block to scope sqlReader local and avoid conflicts
                                Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTimeOffset));
                                SqlDataReader sqlReader = reader as SqlDataReader;
                                DateTimeOffset dto;
                                if (null != sqlReader) {
                                    dto = sqlReader.GetDateTimeOffset(i);
                                } else {
                                    dto = (DateTimeOffset)reader.GetValue(i);
                                }
                                SetDateTimeOffset_Unchecked(sink, setters, i, dto);
                            }
                            break;

                        default:
                            // In order for us to get here we would have to have an 
                            // invalid instance of SqlDbType, or one would have to add 
                            // new member to SqlDbType without adding a case in this 
                            // switch, hence the assert - it must be 

                            Debug.Assert(false, "unsupported DbType:" + metaData[i].SqlDbType.ToString());
                            throw ADP.NotSupported();

                    }
                }
            }
        }
 internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, IList<SmiExtendedMetaData> metaData, DbDataReader reader)
 {
     for (int i = 0; i < metaData.Count; i++)
     {
         object sqlValue;
         DateTimeOffset dateTimeOffset;
         TimeSpan timeSpan;
         ExtendedClrTypeCode code;
         if (reader.IsDBNull(i))
         {
             SetDBNull_Unchecked(sink, setters, i);
             continue;
         }
         switch (metaData[i].SqlDbType)
         {
             case SqlDbType.BigInt:
             {
                 SetInt64_Unchecked(sink, setters, i, reader.GetInt64(i));
                 continue;
             }
             case SqlDbType.Binary:
             {
                 SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.Bit:
             {
                 SetBoolean_Unchecked(sink, setters, i, reader.GetBoolean(i));
                 continue;
             }
             case SqlDbType.Char:
             {
                 SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.DateTime:
             {
                 SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i));
                 continue;
             }
             case SqlDbType.Decimal:
             {
                 SqlDataReader reader6 = reader as SqlDataReader;
                 if (reader6 == null)
                 {
                     break;
                 }
                 SetSqlDecimal_Unchecked(sink, setters, i, reader6.GetSqlDecimal(i));
                 continue;
             }
             case SqlDbType.Float:
             {
                 SetDouble_Unchecked(sink, setters, i, reader.GetDouble(i));
                 continue;
             }
             case SqlDbType.Image:
             {
                 SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.Int:
             {
                 SetInt32_Unchecked(sink, setters, i, reader.GetInt32(i));
                 continue;
             }
             case SqlDbType.Money:
             {
                 SetSqlMoney_Checked(sink, setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i)));
                 continue;
             }
             case SqlDbType.NChar:
             case SqlDbType.NText:
             case SqlDbType.NVarChar:
             {
                 SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.Real:
             {
                 SetSingle_Unchecked(sink, setters, i, reader.GetFloat(i));
                 continue;
             }
             case SqlDbType.UniqueIdentifier:
             {
                 SetGuid_Unchecked(sink, setters, i, reader.GetGuid(i));
                 continue;
             }
             case SqlDbType.SmallDateTime:
             {
                 SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i));
                 continue;
             }
             case SqlDbType.SmallInt:
             {
                 SetInt16_Unchecked(sink, setters, i, reader.GetInt16(i));
                 continue;
             }
             case SqlDbType.SmallMoney:
             {
                 SetSqlMoney_Checked(sink, setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i)));
                 continue;
             }
             case SqlDbType.Text:
             {
                 SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.Timestamp:
             {
                 SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.TinyInt:
             {
                 SetByte_Unchecked(sink, setters, i, reader.GetByte(i));
                 continue;
             }
             case SqlDbType.VarBinary:
             {
                 SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.VarChar:
             {
                 SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.Variant:
             {
                 SqlDataReader reader4 = reader as SqlDataReader;
                 if (reader4 == null)
                 {
                     goto Label_0311;
                 }
                 sqlValue = reader4.GetSqlValue(i);
                 goto Label_0319;
             }
             case SqlDbType.Xml:
             {
                 SqlDataReader reader5 = reader as SqlDataReader;
                 if (reader5 == null)
                 {
                     goto Label_02E4;
                 }
                 SetSqlXml_Unchecked(sink, setters, i, reader5.GetSqlXml(i));
                 continue;
             }
             case SqlDbType.Udt:
             {
                 SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
                 continue;
             }
             case SqlDbType.Date:
             case SqlDbType.DateTime2:
             {
                 SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i));
                 continue;
             }
             case SqlDbType.Time:
             {
                 SqlDataReader reader3 = reader as SqlDataReader;
                 if (reader3 == null)
                 {
                     goto Label_03A0;
                 }
                 timeSpan = reader3.GetTimeSpan(i);
                 goto Label_03AE;
             }
             case SqlDbType.DateTimeOffset:
             {
                 SqlDataReader reader2 = reader as SqlDataReader;
                 if (reader2 == null)
                 {
                     goto Label_03D5;
                 }
                 dateTimeOffset = reader2.GetDateTimeOffset(i);
                 goto Label_03E2;
             }
             default:
                 throw ADP.NotSupported();
         }
         SetSqlDecimal_Unchecked(sink, setters, i, new SqlDecimal(reader.GetDecimal(i)));
         continue;
     Label_02E4:
         SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0);
         continue;
     Label_0311:
         sqlValue = reader.GetValue(i);
     Label_0319:
         code = MetaDataUtilsSmi.DetermineExtendedTypeCodeForUseWithSqlDbType(metaData[i].SqlDbType, metaData[i].IsMultiValued, sqlValue, null, 210L);
         SetCompatibleValueV200(sink, setters, i, metaData[i], sqlValue, code, 0, 0, null);
         continue;
     Label_03A0:
         timeSpan = (TimeSpan) reader.GetValue(i);
     Label_03AE:
         SetTimeSpan_Checked(sink, setters, i, metaData[i], timeSpan);
         continue;
     Label_03D5:
         dateTimeOffset = (DateTimeOffset) reader.GetValue(i);
     Label_03E2:
         SetDateTimeOffset_Unchecked(sink, setters, i, dateTimeOffset);
     }
 }
		private ProfileInfo ReadProfileInfo (DbDataReader reader)
		{
			string username = reader.GetString (0);
			bool anonymous = reader.GetInt32 (1) > 0;
			DateTime lastUpdate = reader.GetDateTime (2);
			DateTime lastActivity = reader.GetDateTime (3);
			int size = reader.GetInt32 (4);

			return new ProfileInfo (username, anonymous, lastActivity, lastUpdate, size);
		}
        private List<Request> Read(DbDataReader reader)
        {
            List<Request> requests = new List<Request>();

            while (reader.Read())
            {
                SampleRequest er = new SampleRequest();
                er.Id = reader.GetInt32(0);
                er.Type = reader.GetString(1);
                er.Description = reader.GetString(2);
                er.Created = reader.GetDateTime(3);

                requests.Add(er);
            }

            return requests;
        }
示例#29
0
		private static IEnumerable<Msg> IterateMessages(DbDataReader reader)
		{
			while(!reader.IsClosed && reader.Read())
			{
				yield return
					new Msg
					{
						Time = reader.GetDateTime(0),
						Type = reader.TryGetString(1).TryParseOrDefault(MsgType.Unknown),
						Text = reader.TryGetString(2)
					};
			}
		}
示例#30
0
		ProfileInfo ReadProfileInfo (DbDataReader reader)
		{
			ProfileInfo pi = null;
			try {
				string username = reader.GetString (0);
				bool anonymous = reader.GetBoolean (1);
				DateTime lastUpdate = reader.GetDateTime (2);
				DateTime lastActivity = reader.GetDateTime (3);
				int size = reader.GetInt32 (4);

				pi = new ProfileInfo (username, anonymous, lastActivity, lastUpdate, size);
			}
			catch {
			}

			return pi;
		}
示例#31
0
		MembershipUser GetUserFromReader (DbDataReader reader, string username, object userId)
		{
			int i = 0;
			if (username == null)
				i = 1;

			if (userId != null)
				username = reader.GetString (8);

			return new MembershipUser (this.Name, /* XXX is this right?  */
				(username == null ? reader.GetString (0) : username), /* name */
				(userId == null ? reader.GetGuid (8 + i) : userId), /* providerUserKey */
				reader.IsDBNull (0 + i) ? null : reader.GetString (0 + i), /* email */
				reader.IsDBNull (1 + i) ? null : reader.GetString (1 + i), /* passwordQuestion */
				reader.IsDBNull (2 + i) ? null : reader.GetString (2 + i), /* comment */
				reader.GetBoolean (3 + i), /* isApproved */
				reader.GetBoolean (9 + i), /* isLockedOut */
				reader.GetDateTime (4 + i).ToLocalTime (), /* creationDate */
				reader.GetDateTime (5 + i).ToLocalTime (), /* lastLoginDate */
				reader.GetDateTime (6 + i).ToLocalTime (), /* lastActivityDate */
				reader.GetDateTime (7 + i).ToLocalTime (), /* lastPasswordChangedDate */
				reader.GetDateTime (10 + i).ToLocalTime () /* lastLockoutDate */);
		}