public override Telerik.Sitefinity.Security.Model.Role CreateRole(Guid Id, string roleName)
        {
            var role = new Telerik.Sitefinity.Security.Model.Role();

            using (var entity = new RolesDbAppContext())
            {
                var roleExist = entity.Roles.Where(r => r.Name == roleName).FirstOrDefault();
                if (roleExist != null)
                {
                    throw new ArgumentException("role name exists", "roleName");
                }

                var roleExistId = entity.Roles.Where(r => r.Id == Id).FirstOrDefault();
                if (roleExistId != null)
                {
                    throw new ArgumentException("Id exists", "Id");
                }

                var newRole = entity.Roles.Create();

                newRole.Id   = Id;
                newRole.Name = roleName;
                entity.Roles.Add(newRole);
                entity.SaveChanges();

                role.Id              = Id;
                role.Name            = roleName;
                role.ApplicationName = this.ApplicationName;

                return(role);
            }
        }
        public override Telerik.Sitefinity.Security.Model.Role GetRole(Guid Id)
        {
            var newRole = new Telerik.Sitefinity.Security.Model.Role();

            using (var entity = new RolesDbAppContext())
            {
                var role = entity.Roles.Where(r => r.Id == Id).FirstOrDefault();
                newRole.Id              = role.Id;
                newRole.Name            = role.Name;
                newRole.ApplicationName = this.ApplicationName;
            }

            return(newRole);
        }
        public override IQueryable <Telerik.Sitefinity.Security.Model.Role> GetRoles()
        {
            List <Telerik.Sitefinity.Security.Model.Role> listEntities = new List <Telerik.Sitefinity.Security.Model.Role>();

            using (var entity = new RolesDbAppContext())
            {
                var rolesQuery = from r in entity.Roles
                                 select new Telerik.Sitefinity.Security.Model.Role()
                {
                    Id              = r.Id,
                    Name            = r.Name,
                    ApplicationName = this.ApplicationName
                };

                listEntities = rolesQuery.ToList();
            }

            return(listEntities.AsQueryable());
        }
        public override void Delete(Telerik.Sitefinity.Security.Model.Role item)
        {
            using (var entity = new RolesDbAppContext())
            {
                var role = entity.Roles.Where(r => r.Name == item.Name).FirstOrDefault();

                var scope = this.GetContext();
                try
                {
                    var itemFromContext = scope.GetItemById(item.GetType(), item.Id.ToString());
                    if (itemFromContext != null)
                    {
                        scope.Remove(itemFromContext);
                    }
                }
                catch (Exception ex)
                {
                }

                entity.Roles.Remove(role);

                entity.SaveChanges();
            }
        }