private void SaveToFile(TLDifference result) { if (result == null) { return; } AddResult(_results, result); TLUtils.SaveObjectToMTProtoFile(_differenceFileSyncRoot, Constants.DifferenceFileName, _results); }
private void AddResult(TLVector <TLDifference> results, TLDifference result) { if (results.Count > 0) { var firstResult = results.FirstOrDefault(); var usersCache = new Dictionary <int, TLUserBase>(); var chatsCache = new Dictionary <int, TLChatBase>(); foreach (var user in firstResult.Users) { usersCache[user.Index] = user; } foreach (var chat in firstResult.Chats) { chatsCache[chat.Index] = chat; } foreach (var user in result.Users) { usersCache[user.Index] = user; } foreach (var chat in result.Chats) { chatsCache[chat.Index] = chat; } result.Users = new TLVector <TLUserBase>(); result.Chats = new TLVector <TLChatBase>(); var users = new TLVector <TLUserBase>(); foreach (var user in usersCache.Values) { users.Add(user); } firstResult.Users = users; var chats = new TLVector <TLChatBase>(); foreach (var chat in chatsCache.Values) { chats.Add(chat); } firstResult.Chats = chats; } _results.Add(result); }