public static async Task UpdateUserInGraph(ClickUser clickUser, DBHelper db)
        {
            User user = new User();

            user.GivenName   = clickUser.firstName;
            user.Surname     = clickUser.lastName;
            user.MobilePhone = clickUser.mobilePhone;
            user.DisplayName = $"{clickUser.firstName} {clickUser.lastName}";
            user.State       = "ClickSync";

            if (Program.disableUsers)
            {
                user.AccountEnabled = clickUser.isActive;
            }

            try
            {
                Program.WriteLog("d", $"updating user {clickUser.tz}{Program.userPrincipalNameSuffix}");
                var    result        = await Program.graphServiceClient.Users[$"{clickUser.tz}{Program.userPrincipalNameSuffix}"].Request().UpdateAsync(user);
                string graphObjectId = clickUser.clickObjectID;
                await db.UpdateClickSynced(clickUser.tz);

                Program.WriteLog("d", $"updated user {clickUser.tz}{Program.userPrincipalNameSuffix}");
                Program.usersUpdated++;
            }
            catch (Exception ex)
            {
                Program.error = true;
                Program.errors++;
                string str = $"error updating user {clickUser.tz}{Program.userPrincipalNameSuffix} Error: {ex.Message}";
                Program.WriteLog("e", str);
                db.WriteLog("ERROR", str);
                await db.UpdateClickSynced(clickUser.tz);
            }
        }
        public static async Task RemoveUserFromGroupInGraph(ClickUser clickUser, string groupID, DBHelper db)
        {
            try{
                Program.WriteLog("d", $"removing user {clickUser.tz}{Program.userPrincipalNameSuffix} from group {groupID}");
                await Program.graphServiceClient.Groups[groupID].Members[clickUser.clickObjectID].Reference.Request().DeleteAsync();
                await db.UpdateClickSynced(clickUser.tz);

                Program.WriteLog("d", $"removed user {clickUser.tz}{Program.userPrincipalNameSuffix} from group {groupID}");
            }catch (Exception ex) {
                Program.error = true;
                string str = $"error removing user {clickUser.tz}{Program.userPrincipalNameSuffix} from group {groupID} Error: {ex.Message}";
                Program.WriteLog("e", str);
                db.WriteLog("ERROR", str);
                await db.UpdateClickSynced(clickUser.tz);
            }
        }
        public static async Task <List <string> > CheckUserGroupsInGraph(List <string> groupIds, ClickUser clickUser, DBHelper db)
        {
            try
            {
                var result = await Program.graphServiceClient.Users[$"{clickUser.tz}{Program.userPrincipalNameSuffix}"]
                             .CheckMemberGroups(groupIds)
                             .Request().PostAsync();
                return(result.ToList());
            }
            catch (System.Exception ex)
            {
                Program.error = true;
                Program.errors++;
                string str = $"error checking user {clickUser.tz}{Program.userPrincipalNameSuffix} groups Error: {ex.Message}";
                Program.WriteLog("e", str);
                db.WriteLog("ERROR", str);
                await db.UpdateClickSynced(clickUser.tz);

                return(new List <string>());
            }
        }