예제 #1
0
        public static Role CreateRole(DataContext context, string roleName = "admin", bool hasAllPrivileged = true)
        {
            Role r = context.RoleSet.Include(a => a.Privileges).Where(a => a.RoleName == roleName).SingleOrDefault();

            try
            {
                if (r == null)
                {
                    r = new Role()
                    {
                        RoleName    = roleName,
                        Description = "My Role Description",
                        Privileges  = new List <Privilege>()
                    };
                    context.RoleSet.Add(r);
                }
                if (hasAllPrivileged)
                {
                    foreach (PrivilegeType p in Enum.GetValues(typeof(PrivilegeType)))
                    {
                        var priv = context.PrivilegeSet.Where(a => a.Security == p).SingleOrDefault();
                        if (priv == null)
                        {
                            priv = new Privilege()
                            {
                                Description = NameSplitting.SplitCamelCase(p),
                                Security    = p
                            };
                            context.PrivilegeSet.Add(priv);
                        }
                        var curr = r.Privileges.Where(a => a.Security == priv.Security).SingleOrDefault();
                        if (curr == null)
                        {
                            r.Privileges.Add(priv);
                        }
                    }
                }
                context.SaveChanges();
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException)
            {
                //throw;
            }


            return(r);
        }
        private ContentResult EnumToModel <T>(bool sort = true)
        {
            List <EnumModel> e = new List <EnumModel>();

            foreach (T eValue in Enum.GetValues(typeof(T)))
            {
                e.Add(new EnumModel()
                {
                    Description = NameSplitting.SplitCamelCase(eValue), Value = eValue.ToString()
                });
            }

            if (sort)
            {
                e = e.OrderBy(a => a.Description).ToList();
            }
            return(SerializeToAngular(e));
        }