public void SaveGroupChat(ChatMessage chat) { string group = chat.Target; if (!Cache.TryGetValue(new KXTUCCacheKey(group, ""), out KXTUCCacheFile value)) { // Cann`t find opened file object try { value = new KXTUCCacheFile(RootDirectory + "\\Groups\\" + group + ".kxtchat", Notify, KXTUCCacheFile.GroupType);; } catch { return; } if (!Cache.TryAdd(new KXTUCCacheKey(group, ""), value)) { return; } } try { value.Save(chat); } catch { Cache.TryRemove(new KXTUCCacheKey(group, ""), out _); } }
public ChatPackage[] ReadGroupChat(string group, Guid request_id) { if (!Cache.TryGetValue(new KXTUCCacheKey(group, ""), out KXTUCCacheFile value)) { // Cann`t find opened file object if (!DBReader.GetRelation(group, "", out string relation_id)) { return(null); } try { value = new KXTUCCacheFile(RootDirectory + "\\Groups\\" + relation_id + ".kxtchat", Notify); } catch { return(null); } if (!Cache.TryAdd(new KXTUCCacheKey(group, ""), value)) { return(null); } } try { value.Read(request_id, out ChatPackage[] packages); return(packages); } catch { Cache.TryRemove(new KXTUCCacheKey(group, ""), out _); return(null); } }
public void SaveFriendChat(ChatMessage chat) { if (!Cache.TryGetValue(new KXTUCCacheKey(chat.Sender, chat.Target), out KXTUCCacheFile value)) { // Cann`t find opened file object if (!DBReader.GetRelation(chat.Sender, chat.Target, out string relation_id)) { return; } try { value = new KXTUCCacheFile(RootDirectory + "\\Relations\\" + relation_id + ".kxtchat", Notify); } catch { return; } if (!Cache.TryAdd(new KXTUCCacheKey(chat.Sender, chat.Target), value)) { return; } } try { value.Save(chat); } catch { Cache.TryRemove(new KXTUCCacheKey(chat.Sender, chat.Target), out _); } }