// GET: 客戶資料/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var 客戶資料 = rep.Find(id.Value);

            if (客戶資料 == null)
            {
                return(HttpNotFound());
            }
            var 客戶資料ViewModel = new ViewModels.客戶資料ViewModel
            {
                Id    = 客戶資料.Id,
                客戶分類  = (EnumModel.客戶分類)客戶資料.客戶分類,
                客戶名稱  = 客戶資料.客戶名稱,
                Email = 客戶資料.Email,
                傳真    = 客戶資料.傳真,
                地址    = 客戶資料.地址,
                統一編號  = 客戶資料.統一編號,
                電話    = 客戶資料.電話,
                已刪除   = 客戶資料.已刪除
            };

            return(View(客戶資料ViewModel));
        }
        // GET: 客戶資料/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var 客戶資料 = rep.Find(id.Value);

            客戶資料.客戶聯絡人 = rep聯絡人.All().Where(x => x.客戶Id == id.Value).ToList();

            if (客戶資料 == null)
            {
                return(HttpNotFound());
            }

            var 客戶資料ViewModel = new ViewModels.客戶資料ViewModel
            {
                Id    = 客戶資料.Id,
                客戶分類  = (EnumModel.客戶分類)客戶資料.客戶分類,
                客戶名稱  = 客戶資料.客戶名稱,
                電話    = 客戶資料.電話,
                統一編號  = 客戶資料.統一編號,
                已刪除   = 客戶資料.已刪除,
                地址    = 客戶資料.地址,
                Email = 客戶資料.Email,
                傳真    = 客戶資料.傳真,
                客戶聯絡人 = 客戶資料.客戶聯絡人
            };

            return(View(客戶資料ViewModel));
        }
        public ActionResult Create([Bind(Include = "Id,客戶分類,客戶名稱,統一編號,電話,傳真,地址,Email")] ViewModels.客戶資料ViewModel 客戶資料ViewModel)
        {
            if (ModelState.IsValid)
            {
                var 客戶資料 = new 客戶資料
                {
                    Id    = 客戶資料ViewModel.Id,
                    客戶分類  = (int)客戶資料ViewModel.客戶分類,
                    客戶名稱  = 客戶資料ViewModel.客戶名稱,
                    Email = 客戶資料ViewModel.Email,
                    傳真    = 客戶資料ViewModel.傳真,
                    地址    = 客戶資料ViewModel.地址,
                    統一編號  = 客戶資料ViewModel.統一編號,
                    電話    = 客戶資料ViewModel.電話,
                    已刪除   = false
                };

                rep.Add(客戶資料);
                rep.UnitOfWork.Commit();
                return(RedirectToAction("Index"));
            }

            return(View(客戶資料ViewModel));
        }
        public ActionResult Edit(int id, FormCollection form)
        //public ActionResult Edit([Bind(Include = "Id,客戶分類,客戶名稱,統一編號,電話,傳真,地址,Email,已刪除")] ViewModels.客戶資料ViewModel 客戶資料ViewModel)
        {
            var 客戶資料 = rep.Find(id);

            if (TryUpdateModel <客戶資料>(客戶資料) && TryValidateModel(客戶資料))
            {
                if (!string.IsNullOrEmpty(客戶資料.密碼))
                {
                    客戶資料.密碼 = new Services.LoginService().EncryPasswd(客戶資料.密碼);
                }
                else
                {/*如果沒輸入密碼 就在把原本密碼存回去?*/
                    var 客戶資料pwdCheck = RepositoryHelper.Get客戶資料Repository().Find(id);
                    if (!string.IsNullOrEmpty(客戶資料pwdCheck.密碼))
                    {
                        客戶資料.密碼 = 客戶資料pwdCheck.密碼;
                    }
                }
                //
                //密碼 = new Services.LoginService().EncryPasswd(客戶資料.密碼)
                rep.UnitOfWork.Commit();
                return(RedirectToAction("Index"));
            }
            var 客戶資料ViewModel = new ViewModels.客戶資料ViewModel
            {
                客戶名稱  = 客戶資料.客戶名稱,
                Email = 客戶資料.Email,
                Id    = 客戶資料.Id,
                傳真    = 客戶資料.傳真,
                地址    = 客戶資料.地址,
                客戶分類  = (EnumModel.客戶分類)客戶資料.客戶分類,
                已刪除   = 客戶資料.已刪除,
                統一編號  = 客戶資料.統一編號,
                電話    = 客戶資料.電話,
                帳號    = 客戶資料.帳號
            };

            if (!string.IsNullOrEmpty(客戶資料.密碼))
            {
            }

            return(View(客戶資料ViewModel));

            //如果Input沒有 FormCollection 那TryUpdateModel就會進行模型驗證,如果有就不會,就要搭配TryValidateModel 做模型驗證。
            //if (ModelState.IsValid)
            //{
            //    var 客戶資料 = new 客戶資料
            //    {
            //        Id = 客戶資料ViewModel.Id,
            //        客戶分類 = (int)客戶資料ViewModel.客戶分類,
            //        客戶名稱 = 客戶資料ViewModel.客戶名稱,
            //        Email = 客戶資料ViewModel.Email,
            //        傳真 = 客戶資料ViewModel.傳真,
            //        地址 = 客戶資料ViewModel.地址,
            //        統一編號 = 客戶資料ViewModel.統一編號,
            //        電話 = 客戶資料ViewModel.電話,
            //        已刪除 = false
            //    };
            //
            //    rep.UnitOfWork.Context.Entry(客戶資料).State = EntityState.Modified;
            //    rep.UnitOfWork.Commit();
            //    return RedirectToAction("Index");
            //}
        }