public static async Task CheckForRejoiners(Clan clan) { await SpreadsheetTools.Read(clan); List <SpreadsheetTools.User> rejoiners = new List <SpreadsheetTools.User>(); var ClanMembers = await GetClanInfoCards(clan); //SpreadsheetTools.savedUsers.ToList().ForEach(member => { // if (!ClanMembers.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.Leavers.ForEach(member => //{ //});; foreach (var member in clan.members.ClanLeavers) { if (!ClanMembers.validMembers.Select(t => t.membershipId).Contains(Convert.ToInt64(member.BungieID))) { rejoiners.Add(member); } } clan.members.ClanLeavers = rejoiners; Clans.SaveClanMembers(clan, UserType.Leaver); }
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); } }