Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="poco"></param>
        /// <returns></returns>
        public Task <UserGroupPoco> UpdateUserGroupAsync(UserGroupPoco poco)
        {
            bool          nameExists   = _repo.GroupNameExists(poco.Name);
            UserGroupPoco existingPoco = _repo.GetUserGroupById(poco.GroupId);

            if (poco.Name != existingPoco.Name && nameExists)
            {
                return(Task.FromResult((UserGroupPoco)null));
            }

            _repo.DeleteUsersFromGroup(existingPoco.GroupId);

            foreach (var user in poco.Users)
            {
                _repo.AddUserToGroup(user);
            }

            _repo.UpdateUserGroup(poco);

            Updated?.Invoke(this, new GroupEventArgs(poco));

            return(Task.FromResult(poco));
        }