示例#1
0
        public IEnumerable <WorkDay> GetWorkdaysByUser(QueryData queryData)
        {
            var storedProcedure = "Proc_WorkDay_GetByUser";
            var parameter       = new Hashtable();

            parameter.Add("UserID", queryData.UserID);
            parameter.Add("StartDate", queryData.StartDate.ToLocalTime());
            parameter.Add("EndDate", queryData.EndDate.ToLocalTime());
            using (DataAccess dataAccess = new DataAccess())
            {
                SqlDataReader dataReader = dataAccess.ExecuteReader(storedProcedure, parameter);

                while (dataReader.Read())
                {
                    var item = new WorkDay();
                    for (int i = 0; i < dataReader.FieldCount; i++)
                    {
                        var fieldTableName  = dataReader.GetName(i);
                        var fieldTableValue = dataReader.GetValue(i);
                        var property        = item.GetType().GetProperty(fieldTableName);
                        if (property != null && fieldTableValue != DBNull.Value)
                        {
                            property.SetValue(item, fieldTableValue);
                        }
                    }
                    yield return(item);
                }
            }
        }