public void AddSticker(TLDocumentBase document) { Documents.Insert(0, document); Hash = TLUtils.GetFavedStickersHash(Documents); var document54 = document as TLDocument54; if (document54 != null) { var emoticon = document54.Emoticon; if (!string.IsNullOrEmpty(emoticon)) { var added = false; for (var i = 0; i < Packs.Count; i++) { if (Packs[i].Emoticon.ToString() == emoticon) { var item = Packs[i].Documents.FirstOrDefault(x => x.Value == document54.Index); if (item == null) { Packs[i].Documents.Insert(0, document54.Id); added = true; break; } } } if (!added) { Packs.Insert(0, new TLStickerPack { Emoticon = new TLString(emoticon), Documents = new TLVector <TLLong> { document54.Id } }); } } } }