public AccountIndexModel(AccountSearch search, PagedList<Core.Business.Account> accounts)
 {
     this.Accounts = accounts;
     this.Search = search;
 }
        public AccountIndexModel Search(AccountSearch packet)
        {
            if (packet == null)
            {
                throw new ArgumentException("packet for search is null!!!!");

            }

            IList<Core.Business.Account> accountlist = new List<Core.Business.Account>();

            SqlServerUtility sql = new SqlServerUtility();

            int start = packet.PageIndex.HasValue ? packet.PageIndex.Value - 1 : 0 * (packet.PageSize.HasValue ? packet.PageSize.Value : 10);
            int end = start + (packet.PageSize.HasValue ? packet.PageSize.Value : 10);

            sql.AddParameter("@Name", SqlDbType.NVarChar, !string.IsNullOrEmpty(packet.Name) ? (object)packet.Name : DBNull.Value, 30);
            sql.AddParameter("@Gender", SqlDbType.Int, packet.Gender != Core.Business.Gender.Female && packet.Gender != Core.Business.Gender.Male ? DBNull.Value : (object)packet.Gender);
            sql.AddParameter("@start", SqlDbType.Int, start);
            sql.AddParameter("@end", SqlDbType.Int, end);
            sql.AddOutputParameter("@totalCount", SqlDbType.Int);

            SqlDataReader reader = sql.ExecuteSqlReader(SqlSerchAccount);

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.Account account = new Core.Business.Account();

                    if (!reader.IsDBNull(0)) account.Id = reader.GetInt32(0);
                    if (!reader.IsDBNull(1)) account.Status = reader.GetInt32(1);
                    if (!reader.IsDBNull(2)) account.Birthday = reader.GetDateTime(2);
                    if (!reader.IsDBNull(3)) account.Gender = reader.GetDecimal(3);
                    if (!reader.IsDBNull(4)) account.Name = reader.GetString(4);
                    if (!reader.IsDBNull(5)) account.Telephone = reader.GetString(5);
                    if (!reader.IsDBNull(6)) account.Address = reader.GetString(6);
                    if (!reader.IsDBNull(7)) account.LoginName = reader.GetString(7);
                    if (!reader.IsDBNull(8)) account.Password = reader.GetString(8);
                    if (!reader.IsDBNull(9)) account.AvatarPath = reader.GetString(9);

                    account.MarkOld();
                    accountlist.Add(account);
                }
                reader.Close();
            }

            AccountIndexModel model = new AccountIndexModel(packet, new PagedList<Account>(accountlist, packet.PageIndex.Value, packet.PageSize.Value, 10));

            return model;
        }
        public ActionResult Index(AccountSearch packet)
        {
            if (TempData["HintMessage"] != null)
            {
                ViewData["HintMessage"] = TempData["HintMessage"];
            }

            AccountIndexModel model = Core.Business.Account.Search(packet);
            return View(model);
        }