• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Engine.PersonModel类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Smuxi.Engine.PersonModel的典型用法代码示例。如果您正苦于以下问题:C# PersonModel类的具体用法?C# PersonModel怎么用?C# PersonModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



PersonModel类属于Smuxi.Engine命名空间,在下文中一共展示了PersonModel类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: CtcpMenu

 public CtcpMenu(IrcProtocolManager protocolManager,
                 ChatViewManager chatViewManager,
                 PersonModel target)
     : this(protocolManager,
                 chatViewManager,
                 new [] { target })
 {
 }
开发者ID:pacificIT,项目名称:smuxi,代码行数:8,代码来源:CtcpMenu.cs


示例2: InviteToMenu

 public InviteToMenu(IrcProtocolManager protocolManager,
                     ChatViewManager chatViewManager,
                     PersonModel invitee)
     : this(protocolManager,
                     chatViewManager,
                     new [] { invitee })
 {
 }
开发者ID:pacificIT,项目名称:smuxi,代码行数:8,代码来源:InviteToMenu.cs


示例3: PersonHookEnvironment

        public PersonHookEnvironment(string prefix, PersonModel person)
        {
            if (person == null) {
                throw new ArgumentNullException("person");
            }

            this[prefix + "PERSON_ID"] = person.ID;
            this[prefix + "PERSON_IDENTITY_NAME"] = person.IdentityName;
            this[prefix + "PERSON_NETWORK_ID"] = person.NetworkID;
            this[prefix + "PERSON_NETWORK_PROTOCOL"] = person.NetworkProtocol;
        }
开发者ID:pacificIT,项目名称:smuxi,代码行数:11,代码来源:PersonHookEnvironment.cs


示例4: Sync

        public override void Sync()
        {
            Trace.Call();

            PersonModel = PersonChatModel.Person;

            base.Sync();
        }
开发者ID:tuukka,项目名称:smuxi,代码行数:8,代码来源:PersonChatView.cs


示例5: OnPresence

        void OnPresence(object sender, Presence pres)
        {
            JID jid = pres.From;
            var groupChat = (XmppGroupChatModel) Session.GetChat(jid.Bare, ChatType.Group, this);

            MessageBuilder builder = CreateMessageBuilder();
            builder.AppendEventPrefix();
            PersonModel person = null;
            if (groupChat != null) {
                string displayName = jid.Resource ?? jid.Bare;
                person = new PersonModel("", displayName, "", "", this);
            } else {
                person = CreatePerson(jid.Bare);
            }
            builder.AppendIdendityName(person);
            if (jid != person.IdentityName) {
                builder.AppendText(" [{0}]", jid);
            }

            switch (pres.Type) {
                case PresenceType.available:
                    // groupchat is already managed
                    if (groupChat == null) {
                        if (ContactChat != null) {
                            // anyone who is online/away/dnd will be added to the list
                            lock (ContactChat) {
                                PersonModel p = ContactChat.GetPerson(jid.Bare);
                                if (p != null) {
                                    // p already exists, don't add a new person
                                    Session.UpdatePersonInGroupChat(ContactChat, p, person);
                                } else {
                                    Session.AddPersonToGroupChat(ContactChat, person);
                                }
                            }
                        }
                    }
                    if (pres.Show == null) {
                        builder.AppendText(_(" is now available"));
                    } else if (pres.Show == "away") {
                        builder.AppendText(_(" is now away"));
                    } else if (pres.Show == "dnd") {
                        builder.AppendText(_(" wishes not to be disturbed"));
                    } else {
                        builder.AppendText(_(" set status to {0}"), pres.Show);
                    }
                    if (pres.Status == null) break;
                    if (pres.Status.Length == 0) break;
                    builder.AppendText(": {0}", pres.Status);
                    break;
                case PresenceType.unavailable:
                    builder.AppendText(_(" is now offline"));
                    if(groupChat == null) {
                        if (ContactChat != null) {
                            lock (ContactChat) {
                                PersonModel p = ContactChat.GetPerson(jid.Bare);
                                if (p == null) {
                                    // doesn't exist, got an offline message w/o a preceding online message?
                                    return;
                                }
                                Session.RemovePersonFromGroupChat(ContactChat, p);
                            }
                        }
                    }
                    break;
                case PresenceType.subscribe:
                    builder.AppendText(_(" wishes to subscribe to you"));
                    break;
                case PresenceType.subscribed:
                    builder.AppendText(_(" allows you to subscribe"));
                    break;
            }
            if (groupChat != null) {
                Session.AddMessageToChat(groupChat, builder.ToMessage());
            } else if (ContactChat != null) {
                Session.AddMessageToChat(ContactChat, builder.ToMessage());
            }
            var personChat = Session.GetChat(jid.Bare, ChatType.Person, this);
            if (personChat != null) {
                Session.AddMessageToChat(personChat, builder.ToMessage());
            }
        }
开发者ID:oli-obk,项目名称:smuxi,代码行数:81,代码来源:XmppProtocolManager.cs


示例6: PersonChatModel

 public PersonChatModel(PersonModel person, string id, string name, IProtocolManager networkManager)
     : base(id, name, ChatType.Person, networkManager)
 {
     _Person = person;
 }
开发者ID:pacificIT,项目名称:smuxi,代码行数:5,代码来源:PersonChatModel.cs


示例7: RemovePersonFromGroupChat

 public void RemovePersonFromGroupChat(GroupChatModel cpage, PersonModel user)
 {
     Trace.Call(cpage, user);
 }
开发者ID:RoninBG,项目名称:smuxi,代码行数:4,代码来源:TestUI.cs


示例8: TextMessageReceived

        private void TextMessageReceived(object sender, TextMessageEventArgs e)
        {
            Trace.Call(sender, e);

            string user = e.Sender.Name;
            string status = e.Sender.Status.ToString();
            string message = e.Message.Text;

            ChatModel chat = Session.GetChat(user, ChatType.Person, this);
            if (chat == null) {
               PersonModel person = new PersonModel(user, user, NetworkID, Protocol, this);
                   Session.AddChat(chat);
            }

            MessageModel msg = new MessageModel();
            TextMessagePartModel msgPart;

            msgPart = new TextMessagePartModel();
            msgPart.Text = String.Format("{0} (Status: {1}) says:\n{2}", user, status, message);
            msg.MessageParts.Add(msgPart);

            Session.AddMessageToChat(chat, msg);
        }
开发者ID:tuukka,项目名称:smuxi,代码行数:23,代码来源:MsnpProtocolManager.cs


示例9: FormatUpload

        void FormatUpload(MessageBuilder bld, PersonModel person, ChatModel chat, Message message)
        {
            // Figure out what the user uploaded, we need to issue another call for this
            var upload = Client.Get<UploadWrapper>(String.Format("/room/{0}/messages/{1}/upload.json", chat.ID, message.Id)).Upload;

            bld.AppendEventPrefix();
            bld.AppendIdendityName(person).AppendSpace();
            bld.AppendText(_("has uploaded '{0}' ({1} B) {2}"), upload.Name, upload.Byte_Size, upload.Full_Url);
        }
开发者ID:glwu,项目名称:smuxi,代码行数:9,代码来源:CampfireProtocolManager.cs


示例10: AddPerson

        public void AddPerson(PersonModel person)
        {
            Trace.Call(person);

            if (_PersonListStore == null) {
                // no liststore, nothing todo
                return;
            }

            _PersonListStore.AppendValues(person);
            Participants.Add(person);
            OnParticipantsChanged(EventArgs.Empty);
        }
开发者ID:pacificIT,项目名称:smuxi,代码行数:13,代码来源:GroupChatView.cs


示例11: AddPersonToGroupChat

 public void AddPersonToGroupChat(GroupChatModel cpage, PersonModel user)
 {
     Trace.Call(cpage, user);
 }
开发者ID:RoninBG,项目名称:smuxi,代码行数:4,代码来源:TestUI.cs


示例12: RemovePersonFromGroupChat

        public void RemovePersonFromGroupChat(GroupChatModel groupChat, PersonModel person)
        {
            TraceRemotingCall(groupChat, person);

            MethodBase mb = Trace.GetMethodBase();
            _Dispatcher.Invoke(DispatcherPriority.Normal,new MethodInvoker(delegate {
                TraceRemotingCall(mb, groupChat, person);

                GroupChatView groupChatView = (GroupChatView) _ChatViewManager.GetChat(groupChat);
                groupChatView.RemovePerson(person);
            }));
        }
开发者ID:pacificIT,项目名称:smuxi,代码行数:12,代码来源:WpfUI.cs


示例13: UpdatePersonInGroupChat

        public void UpdatePersonInGroupChat(GroupChatModel groupChat, PersonModel oldPerson, PersonModel newPerson)
        {
            TraceRemotingCall(groupChat, oldPerson, newPerson);

            MethodBase mb = Trace.GetMethodBase();
            _Dispatcher.Invoke(DispatcherPriority.Normal,new MethodInvoker(delegate {
                TraceRemotingCall(mb, groupChat, oldPerson, newPerson);

                GroupChatView groupChatView = (GroupChatView) _ChatViewManager.GetChat(groupChat);
                groupChatView.UpdatePerson(oldPerson, newPerson);
            }));
        }
开发者ID:pacificIT,项目名称:smuxi,代码行数:12,代码来源:WpfUI.cs


示例14: UpdatePersonInGroupChat

        public void UpdatePersonInGroupChat(GroupChatModel groupChat, PersonModel oldPerson, PersonModel newPerson)
        {
            TraceRemotingCall(groupChat, oldPerson, newPerson);

            MethodBase mb = Trace.GetMethodBase();
            Gtk.Application.Invoke(delegate {
                TraceRemotingCall(mb, groupChat, oldPerson, newPerson);

                try {
                    GroupChatView groupChatView = (GroupChatView) _ChatViewManager.GetChat(groupChat);
                    if (groupChatView == null) {
            #if LOG4NET
                        _Logger.Fatal(
                            String.Format(
                                "UpdatePersonInGroupChat(): " +
                                "_ChatViewManager.GetChat(groupChat) " +
                                "groupChat.Name: {0} returned null!",
                                groupChat.Name
                            )
                        );
            #endif
                        return;
                    }
                    groupChatView.UpdatePerson(oldPerson, newPerson);
                } catch (Exception ex) {
                    Frontend.ShowException(ex);
                }
            });
        }
开发者ID:flugsio,项目名称:smuxi,代码行数:29,代码来源:GnomeUI.cs


示例15: RemovePerson

        public void RemovePerson(PersonModel person)
        {
            Trace.Call(person);

            if (_PersonListStore == null) {
                // no liststore, nothing todo
                return;
            }

            Gtk.TreeIter iter;
            bool res = _PersonListStore.GetIterFirst(out iter);
            if (!res) {
            #if LOG4NET
                _Logger.Error("RemovePerson(): GetIterFirst() returned false!");
            #endif
                return;
            }

            do {
                PersonModel currentPerson = (PersonModel) _PersonListStore.GetValue(iter, 0);
                if (currentPerson.ID == person.ID) {
                    _PersonListStore.Remove(ref iter);
                    break;
                }
            } while (_PersonListStore.IterNext(ref iter));
            UpdatePersonCount();
        }
开发者ID:flugsio,项目名称:smuxi,代码行数:27,代码来源:GroupChatView.cs


示例16: AddPerson

        public void AddPerson(PersonModel person)
        {
            Trace.Call(person);

            if (_PersonListStore == null) {
                // no liststore, nothing todo
                return;
            }

            _PersonListStore.AppendValues(person);
            UpdatePersonCount();
        }
开发者ID:flugsio,项目名称:smuxi,代码行数:12,代码来源:GroupChatView.cs


示例17: AddPersonToGroup

        private void AddPersonToGroup(Room room, string nickname)
        {
            string jid = room.JID.Bare;
            var chat = (XmppGroupChatModel) Session.GetChat(jid, ChatType.Group, this);
            // first notice we're joining a group chat is the participant info:
            if (chat == null) {
                chat = Session.CreateChat<XmppGroupChatModel>(jid, jid, this);
                chat.OwnNickname = room.Nickname;
                Session.AddChat(chat);
            }

            lock (chat) {
                if (chat.UnsafePersons.ContainsKey(nickname)) {
                    return;
                }
                // manual construction is necessary for group chats
                var person = new PersonModel(nickname, nickname, NetworkID, Protocol, this);
                if (chat.IsSynced) {
                    Session.AddPersonToGroupChat(chat, person);
                } else {
                    chat.UnsafePersons.Add(nickname, person);
                }
            }

            // did I join? then the chat roster is fully received
            if (!chat.IsSynced && nickname == room.Nickname) {
                chat.IsSynced = true;
                Session.SyncChat(chat);
            }
        }
开发者ID:oli-obk,项目名称:smuxi,代码行数:30,代码来源:XmppProtocolManager.cs


示例18: UpdatePerson

        public void UpdatePerson(PersonModel oldPerson, PersonModel newPerson)
        {
            Trace.Call(oldPerson, newPerson);

            if (_PersonListStore == null) {
                // no liststore, nothing todo
                return;
            }

            Gtk.TreeIter iter;
            bool res = _PersonListStore.GetIterFirst(out iter);
            if (!res) {
            #if LOG4NET
                _Logger.Error("UpdatePersonModelInChannel(): _PersonsStore.GetIterFirst() returned false, ignoring update...");
            #endif
                return;
            }

            do {
                PersonModel person = (PersonModel) _PersonListStore.GetValue(iter, 0);
                if (person.ID  == oldPerson.ID) {
                     _PersonListStore.SetValue(iter, 0, newPerson);
                    break;
                }
            } while (_PersonListStore.IterNext(ref iter));
            _PersonTreeView.CheckResize();
            //_PersonListStore.Reorder();

            for (int i = 0; i < Participants.Count; ++i) {
                if (Participants[i].ID == oldPerson.ID) {
                    Participants[i] = newPerson;
                    break;
                }
            }
        }
开发者ID:pacificIT,项目名称:smuxi,代码行数:35,代码来源:GroupChatView.cs


示例19: OnMessage

        private void OnMessage(object sender, Message msg)
        {
            if (msg.Body == null) {
                return;
            }

            var delay = msg["delay"];
            string stamp = null;
            if (delay != null) {
                stamp = delay.Attributes["stamp"].Value;
            }
            bool display = true;

            ChatModel chat = null;
            PersonModel person = null;
            if (msg.Type != XmppMessageType.groupchat) {
                var sender_jid = msg.From.Bare;
                var personChat = (PersonChatModel) Session.GetChat(
                    sender_jid, ChatType.Person, this
                );
                if (personChat == null) {
                    person = CreatePerson(msg.From);
                    personChat = Session.CreatePersonChat(
                        person, sender_jid, person.IdentityName, this
                    );
                    Session.AddChat(personChat);
                    Session.SyncChat(personChat);
                } else {
                    person = personChat.Person;
                }
                chat = personChat;
            } else {
                string group_jid = msg.From.Bare;
                string group_name = group_jid;
                XmppGroupChatModel groupChat = (XmppGroupChatModel) Session.GetChat(group_jid, ChatType.Group, this);
                if (groupChat == null) {
                    groupChat = Session.CreateChat<XmppGroupChatModel>(
                        group_jid, group_name, this
                    );
                    Session.AddChat(groupChat);
                }
                // resource can be empty for room messages
                var sender_id = msg.From.Resource ?? msg.From.Bare;
                person = groupChat.GetPerson(sender_id);
                if (person == null) {
                    // happens in case of a delayed message if the participant has left meanwhile
                    person = new PersonModel(sender_id,
                                             sender_id,
                                             NetworkID, Protocol, this);
                }

                // XXX maybe only a Google Talk bug requires this:
                if (stamp != null) {
                    // XXX can't use > because of seconds precision :-(
                    if (stamp.CompareTo(groupChat.LatestSeenStamp) >= 0) {
                        groupChat.LatestSeenStamp = stamp;
                    } else {
                        display = false; // already seen newer delayed message
                    }
                    if (groupChat.SeenNewMessages) {
                        display = false; // already seen newer messages
                    }
                } else {
                    groupChat.SeenNewMessages = true;
                }

                chat = groupChat;
            }

            if (display) {
                var builder = CreateMessageBuilder();
                if (msg.Type != XmppMessageType.error) {
                    if (chat is PersonChatModel) {
                        // private message
                        builder.AppendSenderPrefix(person, true);
                        builder.AppendMessage(msg.Body);
                        builder.MarkHighlights();
                    } else if (chat is XmppGroupChatModel) {
                        // public message
                        builder.AppendMessage(person, msg.Body);
                        // mark highlights only for received messages
                        var muc = (XmppGroupChatModel) chat;
                        if (person.ID != muc.OwnNickname) {
                            builder.MarkHighlights();
                        }
                    }
                } else {
                    // TODO: nicer formatting
                    builder.AppendMessage(msg.Error.ToString());
                }
                if (stamp != null) {
                    string format = DateTimeFormatInfo.InvariantInfo.UniversalSortableDateTimePattern.Replace(" ", "T");
                    builder.TimeStamp = DateTime.ParseExact(stamp, format, null);
                }
                Session.AddMessageToChat(chat, builder.ToMessage());
            }
        }
开发者ID:oli-obk,项目名称:smuxi,代码行数:97,代码来源:XmppProtocolManager.cs


示例20: UpdatePersonInGroupChat

 public void UpdatePersonInGroupChat(GroupChatModel cpage, PersonModel olduser, PersonModel newuser)
 {
     Trace.Call(cpage, olduser, newuser);
 }
开发者ID:RoninBG,项目名称:smuxi,代码行数:4,代码来源:TestUI.cs



注:本文中的Smuxi.Engine.PersonModel类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Engine.UserConfig类代码示例发布时间:2022-05-26
下一篇:
C# Engine.MessageModel类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap