public override void OnActionExecuting(ActionExecutingContext filterContext) { var db = new LendGamesContext(); var accountRepository = new AccountRepository(db); if (filterContext.HttpContext.Session["ConnectedId"] == null) { filterContext.HttpContext.Session.Abandon(); if (ThrowExceptions) { throw new HttpException("Não foi possível prosseguir, pois não há usuário conectado."); } else { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "Controller", "Home" }, { "Action", "Index" } }); } } else { var id = (int?)filterContext.HttpContext.Session["ConnectedId"]; var account = accountRepository.Find(id); if (account == null) { if (ThrowExceptions) { throw new HttpException("A conta que está conectada é inválida."); } else { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "Controller", "Home" }, { "Action", "Index" } }); } } else if (RequireTypes.Any() ? !RequireTypes.Contains(account.Type) : false) { if (ThrowExceptions) { throw new HttpException("O tipo de conta conectada não pode acessar a URL solicitada."); } else { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "Controller", "Home" }, { "Action", "PermissionRequired" } }); } } } }
protected override void Seed(LendGamesContext context) { context.Accounts.AddOrUpdate(a => a.Username, new Account { Username = "******", Password = "******".Encrypt(Model.Key), Email = "*****@*****.**", Enabled = true, Type = AccountType.Administrator }); context.SaveChanges(); }
public Controller() : base() { db = new LendGamesContext(); db.Configuration.ValidateOnSaveEnabled = false; }