Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Routing;
- using System.Web.Security;
- using fitness.Models;
- using fitness.Services;
- namespace fitness.Controllers
- {
- public class AccountController : Controller
- {
- private readonly AccountRepository _repository = new AccountRepository();
- public ActionResult LogOn()
- {
- return View();
- }
- [HttpPost]
- public ActionResult LogOn(LogOnModel model, string returnUrl)
- {
- if (ModelState.IsValid)
- {
- if ((from item in new fitnes1Entities().Clients
- where item.Login == model.UserName && item.Password == model.Password
- select item).Any())
- {
- FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
- if (!string.IsNullOrWhiteSpace(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
- && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
- {
- return Redirect(returnUrl);
- }
- else
- {
- return RedirectToAction("Index", "Home");
- }
- }
- else
- {
- ModelState.AddModelError("", "Имя пользователя или пароль указаны неверно.");
- }
- }
- return View(model);
- }
- public ActionResult LogOff()
- {
- FormsAuthentication.SignOut();
- return RedirectToAction("Index", "Home");
- }
- [Authorize]
- public ActionResult Cabinet()
- {
- return View(_repository.GetAccount(User.Identity.Name));
- }
- [HttpPost]
- public ActionResult Register(RegisterModel model)
- {
- try
- {
- if (ModelState.IsValid)
- {
- var entities = new fitnes1Entities();
- if (!(from item in entities.Clients where item.Login == model.UserName select item).Any())
- {
- _repository.Add(model);
- FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
- return RedirectToAction("Index", "Home");
- }
- else
- {
- ModelState.AddModelError("", ErrorCodeToString(MembershipCreateStatus.DuplicateUserName));
- }
- }
- }
- catch (Exception e)
- {
- ModelState.AddModelError("", "При попытке регистрации возникла неизвестная ошибка.");
- return View();
- }
- return View(model);
- }
- public ActionResult Register()
- {
- return View();
- }
- [HttpPost]
- [Authorize]
- public ActionResult Edit(RegisterModel model)
- {
- try
- {
- _repository.Edit(model, _repository.GetAccount(User.Identity.Name));
- }
- catch (Exception e)
- {
- ModelState.AddModelError("", "При попытке применения изменений возникла неизвестная ошибка.");
- return View();
- }
- return RedirectToAction("Cabinet", "Account");
- }
- [Authorize]
- public ActionResult Edit()
- {
- return View(_repository.GetModelById(_repository.GetAccount(User.Identity.Name).IDClient));
- }
- [Authorize]
- public ActionResult ChangePassword()
- {
- return View();
- }
- [Authorize]
- [HttpPost]
- public ActionResult ChangePassword(ChangePasswordModel model)
- {
- if (ModelState.IsValid)
- {
- bool changePasswordSucceeded = false;
- try
- {
- var entities = new fitnes1Entities();
- var currentUser =
- (from item in entities.Clients
- where item.Login == User.Identity.Name && item.Password == model.OldPassword
- select item).FirstOrDefault();
- if (currentUser != null)
- {
- currentUser.Password = model.NewPassword;
- entities.SaveChanges();
- changePasswordSucceeded = true;
- }
- }
- catch (Exception)
- {
- changePasswordSucceeded = false;
- }
- if (changePasswordSucceeded)
- {
- return RedirectToAction("ChangePasswordSuccess");
- }
- else
- {
- ModelState.AddModelError("", "Неправильный текущий пароль или недопустимый новый пароль.");
- }
- }
- return View(model);
- }
- public ActionResult ChangePasswordSuccess()
- {
- return View();
- }
- #region Status Codes
- private static string ErrorCodeToString(MembershipCreateStatus createStatus)
- {
- switch (createStatus)
- {
- case MembershipCreateStatus.DuplicateUserName:
- return "Имя пользователя уже существует. Введите другое имя пользователя.";
- case MembershipCreateStatus.DuplicateEmail:
- return
- "Имя пользователя для данного адреса электронной почты уже существует. Введите другой адрес электронной почты.";
- case MembershipCreateStatus.InvalidPassword:
- return "Указан недопустимый пароль. Введите допустимое значение пароля.";
- case MembershipCreateStatus.InvalidEmail:
- return "Указан недопустимый адрес электронной почты. Проверьте значение и повторите попытку.";
- case MembershipCreateStatus.InvalidAnswer:
- return
- "Указан недопустимый ответ на вопрос для восстановления пароля. Проверьте значение и повторите попытку.";
- case MembershipCreateStatus.InvalidQuestion:
- return
- "Указан недопустимый вопрос для восстановления пароля. Проверьте значение и повторите попытку.";
- case MembershipCreateStatus.InvalidUserName:
- return "Указано недопустимое имя пользователя. Проверьте значение и повторите попытку.";
- case MembershipCreateStatus.ProviderError:
- return
- "Поставщик проверки подлинности вернул ошибку. Проверьте введенное значение и повторите попытку. Если проблему устранить не удастся, обратитесь к системному администратору.";
- case MembershipCreateStatus.UserRejected:
- return
- "Запрос создания пользователя был отменен. Проверьте введенное значение и повторите попытку. Если проблему устранить не удастся, обратитесь к системному администратору.";
- default:
- return
- "Произошла неизвестная ошибка. Проверьте введенное значение и повторите попытку. Если проблему устранить не удастся, обратитесь к системному администратору.";
- }
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement