public Task <UserGroupPoco> UpdateUserGroupAsync(UserGroupPoco poco) { var nameExists = repo.UserGroupsByName(poco.Name).Any(); var existingPoco = repo.UserGroupsById(poco.GroupId).First(); 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); return(Task.FromResult(poco)); }
/// <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)); }