Exemplo n.º 1
0
        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" }
                        });
                    }
                }
            }
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 public Controller()
     : base()
 {
     db = new LendGamesContext();
     db.Configuration.ValidateOnSaveEnabled = false;
 }