Exemplo n.º 1
0
        private static Notification FromRPCModel(PNNotification notification, THPublicUser user)
        {
            if (user == null)
            {
                user = notification.Sender.PublicUser;
            }

            return(new Notification
            {
                Id = notification.Id,
                Customization = new NotificationCustomization
                {
                    BackgroundImageConfiguration = notification.Media?.BackgroundImage,
                    TextColor = notification.Media?.TextColor,
                    TitleColor = notification.Media?.TitleColor
                },
                ActionButtons = (notification.ActionButtons ?? new List <THActionButton>()).ConvertAll(it => it.FromRpcModel()),
                Attachment = null, // todo
                CreatedAt = notification.CreatedAt,
                Action = notification.Action?.FromRpcModel(),
                Sender = user.FromRPCModel(),
                Type = notification.Type,
                Status = notification.Status,
                Text = notification.Text,
                Title = notification.Title
            });
        }
        public void Read(TProtocol iprot)
        {
            iprot.IncrementRecursionDepth();
            try
            {
                TField field;
                iprot.ReadStructBegin();
                while (true)
                {
                    field = iprot.ReadFieldBegin();
                    if (field.Type == TType.Stop)
                    {
                        break;
                    }
                    switch (field.ID)
                    {
                    case 1:
                        if (field.Type == TType.List)
                        {
                            {
                                Notifications = new List <PNNotification>();
                                TList _list111 = iprot.ReadListBegin();
                                for (int _i112 = 0; _i112 < _list111.Count; ++_i112)
                                {
                                    PNNotification _elem113;
                                    _elem113 = new PNNotification();
                                    _elem113.Read(iprot);
                                    Notifications.Add(_elem113);
                                }
                                iprot.ReadListEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 2:
                        if (field.Type == TType.I32)
                        {
                            TotalNumber = iprot.ReadI32();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 3:
                        if (field.Type == TType.String)
                        {
                            NextCursor = iprot.ReadString();
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    case 4:
                        if (field.Type == TType.Map)
                        {
                            {
                                Authors = new Dictionary <string, THPublicUser>();
                                TMap _map114 = iprot.ReadMapBegin();
                                for (int _i115 = 0; _i115 < _map114.Count; ++_i115)
                                {
                                    string       _key116;
                                    THPublicUser _val117;
                                    _key116 = iprot.ReadString();
                                    _val117 = new THPublicUser();
                                    _val117.Read(iprot);
                                    Authors[_key116] = _val117;
                                }
                                iprot.ReadMapEnd();
                            }
                        }
                        else
                        {
                            TProtocolUtil.Skip(iprot, field.Type);
                        }
                        break;

                    default:
                        TProtocolUtil.Skip(iprot, field.Type);
                        break;
                    }
                    iprot.ReadFieldEnd();
                }
                iprot.ReadStructEnd();
            }
            finally
            {
                iprot.DecrementRecursionDepth();
            }
        }