namespace InstaFollowersOverseer; public class UsersData : DtsodFile { public Dictionary> UsersDict=new(); public UsersData(string fileName) : base(fileName) {} public override void LoadFromFile() { var dtsod=ReadDtsodFromFile(false); try { foreach (var uset in dtsod) { string telegramUserId = uset.Key; List oparams = new(); foreach (DtsodV23 _overseeParams in uset.Value) oparams.Add(new InstagramObservableParams(_overseeParams)); UsersDict.Add(telegramUserId, oparams); } } catch (Exception ex) { LoadedSuccessfully = false; throw new Exception($"your {FileName} format is invalid\n" + $"See {FileExampleName}", innerException: ex); } } public override DtsodV23 ToDtsod() { var b = new DtsodV23(); foreach (var userS in UsersDict) b.Add(userS.Key, userS.Value.Select(iop => iop.ToDtsod() ).ToList()); return b; } public List? Get(long telegramUserId) { string userIdStr = telegramUserId.ToString(); if (!UsersDict.TryGetValue(userIdStr, out var overseeParams)) return null; return overseeParams; } public void AddOrSet(long telegramUserId, InstagramObservableParams instagramObservableParams) { // Add // doesnt contain settings for telegramUserId string userIdStr = telegramUserId.ToString(); if (!UsersDict.TryGetValue(userIdStr, out var thisUsersData)) { UsersDict.Add(userIdStr, new (){ instagramObservableParams }); return; } // Set // settings for telegramUserId contain InstagramObservableParams with instagramObservableParams.instagramUsername for (var i = 0; i < thisUsersData.Count; i++) { if (thisUsersData[i].instagramUsername == instagramObservableParams.instagramUsername) { thisUsersData[i] = instagramObservableParams; return; } } // Add // doesnt contain InstagramObservableParams with instagramObservableParams.instagramUsername thisUsersData.Add(instagramObservableParams); } public void AddOrSet(long telegramUserId, IEnumerable instagramObservableParams) { foreach (var p in instagramObservableParams) AddOrSet(telegramUserId, p); } }