public ActionResult Execute() { var viewModel = new MyPageSettingDeleteAccountViewModel(); try { Int64 memberID = GetMemberID(); var member = (from m in com.Member where m.MemberId == memberID select m).FirstOrDefault(); if (member != null) { member.Status = Constants.MEMBER_STATUS_LEFT; member.ExitTime = DateTime.Now; member.ModifiedAccountID = memberID.ToString(); member.ModifiedDate = member.ExitTime; int rs = com.SaveChanges(); if (rs > 0) { Session["CurrentUser"] = null; Session["UserInfo"] = null; HttpCookie cookie = HttpContext.Request.Cookies.Get("auth_cookie"); if (HttpContext.Request.Cookies["auth_cookie"] != null) { cookie.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(cookie); } return View("done"); } } viewModel.HasError = true; viewModel.Message = "会員情報が見つかりませんでした。"; return View(viewModel); } catch (Exception ex) { viewModel.HasError = true; viewModel.Message = "予期せぬエラーが起こりました。"; return View(viewModel); } }
/// <summary> /// GET: /mypage/setting/deleteaccount/ /// </summary> public ActionResult Index() { ////Todo:認証処理 AOPでやりたい。 一旦Session変数を参照し判定 if (Session["CurrentUser"] == null) { return RedirectToActionPermanent("Login", "Member", new { area = "" }); } var viewModel = new MyPageSettingDeleteAccountViewModel(); var url = Request.Path; string[] subUrls = url.Split('/'); if (subUrls != null && subUrls.Length > 4 && subUrls[4] == "execute") { return Execute(); } Int64 memberId = GetMemberID(); if (memberId > 0) { var member = (from m in com.Member where m.MemberId == memberId select m).FirstOrDefault(); if (member != null) { viewModel.Nickname = member.Nickname; } } return View(viewModel); }