Exemplo n.º 1
0
        internal static DriverAvailability GetDriverAvailability(IDataReader dbRdr)
        {
            DriverAvailability tmp;
            try
            {
                tmp = new DriverAvailability(Convert.ToDateTime(dbRdr["PlanDate"]),
                               Convert.ToInt32(dbRdr["DriverID"]),
                               (Convert.ToBoolean(dbRdr["DriverAvailable"]) ? true : false));
            }
            catch (NullReferenceException ne) { throw ne; }
            catch (InvalidCastException ice) { throw ice; }

            return tmp;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="date"></param>
        /// <param name="driverId"></param>
        /// <returns></returns>
        internal static DriverAvailability GetDriverAvailability(DateTime date, int driverId)
        {
            DriverAvailability tmp = new DriverAvailability();
            string strDBConnection = Helper.DBHelper.getDbConnectionString();
            string strDate = date.ToString("yyyy-MM-dd HH:mm:ss");
            string sqlQuery = "SELECT * FROM dbo.DriverAvailability WHERE PlanDate = '{0}' AND DriverID = {1}";
            sqlQuery = String.Format(sqlQuery, strDate, driverId);
            SqlConnection dbCon = new SqlConnection(strDBConnection);
            SqlCommand dbCmd = new SqlCommand();
            SqlTransaction tran;

            try
            {
                if (dbCon.State == ConnectionState.Closed) { dbCon.Open(); }
                tran = dbCon.BeginTransaction();
                dbCmd.Connection = dbCon;
                dbCmd.Transaction = tran;
                dbCmd.CommandType = CommandType.Text;
                dbCmd.CommandText = sqlQuery;

                SqlDataReader dbRdr = dbCmd.ExecuteReader();
                int iTest = 0;
                while (dbRdr.Read())
                {
                    tmp = GetDriverAvailability(dbRdr);
                    iTest++;
                }
                if (iTest > 1)
                {
                    tran.Rollback();
                    throw new Exception("Expect to get one record, but more records are got.");
                }

                tran.Commit();
            }
            catch (SqlException se) { throw se; }
            catch (Exception e) { throw e; }
            finally { dbCon.Close(); }

            return tmp;
        }