Esempio n. 1
0
        public GroupSaveViewModel PostSave(EasyADGroup group)
        {
            var groupManager = ManagerFactory.GetManager();

            string message = "";

            if (!ValidateGroup(group.Name, groupManager, ref message))
            {
                return(FailedSave(message));
            }

            if (!ValidUserType(group.UserType))
            {
                return(FailedSave("Invalid User Type!"));
            }

            if (!ValidateSections(group.Sections, ref message))
            {
                return(FailedSave(message));
            }

            var repo    = new EasyADRepository(DatabaseContext.Database, DatabaseContext.SqlSyntax);
            var handler = new SaveGroupHandler(repo, groupManager, Services.UserService);
            var groupId = handler.Handle(group);

            return(new GroupSaveViewModel
            {
                GroupId = groupId,
                Success = true,
                Message = "Group created!"
            });
        }
Esempio n. 2
0
        public void TestSaveGroupHandler()
        {
            //Arrange
            var handler   = new SaveGroupHandler(Repo, Manager, Services.UserService);
            var groupName = "AD-Editors";

            Manager.AddUsers(groupName,
                             new EasyADUser {
                Login = "******", DiplayName = "User A", Email = "usera@local"
            }
                             );
            var group = new EasyADGroup {
                Name = groupName, UserType = AllUserTypes["Editors"], Sections = string.Join(";", AllSections["Content"], AllSections["Media"])
            };

            //Act
            handler.Handle(group);
            var groups = Repo.GetAll();
            var user   = Services.UserService.GetByUsername("userA");

            //Assert
            Assert.AreEqual(1, groups.Count());
            Assert.AreEqual(groupName, groups.First().Name);

            Assert.IsNotNull(user);
            Assert.AreEqual("User A", user.Name);
            Assert.AreEqual("usera@local", user.Email);
            Assert.AreEqual(group.UserType, user.UserType.Id);

            Assert.AreEqual(2, user.AllowedSections.Count());
            Assert.IsTrue(user.AllowedSections.Contains(AllSections["Content"]));
            Assert.IsTrue(user.AllowedSections.Contains(AllSections["Media"]));
        }