/// <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 (User2UserGroupPoco user in poco.Users) { _repo.AddUserToGroup(user); } _repo.UpdateUserGroup(poco); Updated?.Invoke(this, new GroupEventArgs(poco)); return(Task.FromResult(poco)); }