public static async Task <List <SpreadsheetTools.User> > CheckForLeaves(Clan clan, bool DontWrite = false) { if (clan.members.ClanLeavers != null) { await CheckForRejoiners(clan); } if (!DontWrite) { if (clan.members.ClanLeavers != null) { List <SpreadsheetTools.User> oldLeavers = clan.members.ClanLeavers; List <SpreadsheetTools.User> leavers = new List <SpreadsheetTools.User>(); var ClanMembers = await GetClanInfoCards(clan); foreach (var member in clan.members.BungieUsers) { if (!ClanMembers.validMembers.Select(t => t.membershipId).Contains(Convert.ToInt64(member.BungieID))) { if (!oldLeavers.Select(t => t.BungieID).Contains(member.BungieID)) { if (member.BungieID != null) { leavers.Add(member); } } } } //clan.Users.ForEach(member => //{ //}); foreach (var member in leavers) { var workingMember = member; var _ = clan.members.BungieUsers.FindIndex(t => t.BungieProfile == workingMember.BungieProfile); workingMember.UserStatus = UserStatus.StatusEnum.leftClan; clan.members.BungieUsers[_] = workingMember; } oldLeavers.AddRange(leavers); clan.members.ClanLeavers = oldLeavers; Clans.SaveClanMembers(clan); SpreadsheetTools.Write(clan); return(leavers); } else { List <SpreadsheetTools.User> leavers = new List <SpreadsheetTools.User>(); var ClanMembers = await GetClanInfoCards(clan); clan.members.BungieUsers.ForEach(member => { if (!ClanMembers.validMembers.Select(t => t.membershipId).Contains(Convert.ToInt64(member.BungieID))) { if (member.BungieID != null) { leavers.Add(member); } } }); foreach (var member in leavers) { var workingMember = member; var _ = clan.members.BungieUsers.FindIndex(t => t.BungieProfile == workingMember.BungieProfile); workingMember.UserStatus = UserStatus.StatusEnum.leftClan; clan.members.BungieUsers[_] = workingMember; } clan.members.ClanLeavers = leavers; Clans.SaveClanMembers(clan); SpreadsheetTools.Write(clan); return(leavers); } } else { await SpreadsheetTools.Read(clan); List <SpreadsheetTools.User> leavers = new List <SpreadsheetTools.User>(); var ClanMembers = await GetClanInfoCards(clan); clan.members.BungieUsers.ForEach(member => { if (!ClanMembers.validMembers.Select(t => t.membershipId).Contains(Convert.ToInt64(member.BungieID))) { if (member.BungieID != null) { leavers.Add(member); } } }); //foreach (var member in leavers) //{ // var workingMember = member; // var _ = clan.members.BungieUsers.FindIndex(t => t.bungieProfile == workingMember.bungieProfile); // workingMember.UserStatus = SpreadsheetTools.UserStatus.leftclan; // clan.members.BungieUsers[_] = workingMember; //} //SpreadsheetTools.Write(clan); return(leavers); } }