Beispiel #1
0
        private static void NewMethod3()
        {
            StudyOnlineEntities entities = new StudyOnlineEntities();
            DateTime            now      = DateTime.Now;

            for (int i = 1; i <= 150; i++)
            {
                //创建帐号
                NimUser nimuser = new NimUser()
                {
                    Accid = Guid.NewGuid().ToString().Replace("-", ""), Category = 0, IsActive = 1, IsEnable = 1, Username = String.Format("CFFD{0:D3}", i), Password = EncryptionUtil.Md5Encode("00000000"), CreateDate = now, NimUserEx = new NimUserEx()
                    {
                        Coins = 600
                    }
                };

                //同步云信
                String json = NimUtil.UserCreate(nimuser.Accid, null, null, null);
                Answer a    = JsonConvert.DeserializeObject <Answer>(json);
                if (a.code == 200)
                {
                    nimuser.Token = a.info.token;
                }

                //保存数据
                entities.NimUser.Add(nimuser);
                Console.WriteLine("帐号:{0},密码:{2},学币:{1},accid={3},token={4}", nimuser.Username, nimuser.NimUserEx.Coins, nimuser.Password, nimuser.Accid, nimuser.Token);
            }

            entities.SaveChanges();
        }
Beispiel #2
0
        /// <summary>
        /// 刷新会话列表
        /// </summary>
        /// <param name="page">页码</param>
        private void refresh(int page = 0)
        {
            var show   = sceMain.Controls[0];
            var hide   = sceMain.Controls[1];
            var height = 0;

            sessions.OrderByDescending(i => i.time).Skip(page * ppcSession.size).Take(ppcSession.size).OrderBy(i => i.time).ToList().ForEach(i =>
            {
                var control = new SessionBox
                {
                    headImage = i.head,
                    name      = i.name,
                    message   = i.message,
                    time      = i.time,
                    unRead    = i.unRead,
                    Name      = i.id,
                    Dock      = DockStyle.Top,
                };
                if (i.id == id)
                {
                    control.BackColor = Color.White;
                }

                control.click += (sender, args) =>
                {
                    sessionClick?.Invoke(sender, new SessionEventArgs(i.id, i.unRead));
                    click(control);
                };
                control.doubleClick += (sender, args) =>
                {
                    sessionDoubleClick?.Invoke(sender, new SessionEventArgs(i.id, i.unRead));
                    click(control);
                };

                height = height + control.Height;
                hide.Controls.Add(control);
            });

            hide.Dock    = height > Height ? DockStyle.Top : DockStyle.Fill;
            hide.Height  = height;
            hide.Visible = true;
            show.Visible = false;

            show.SendToBack();
            foreach (Control control in show.Controls)
            {
                NimUtil.clearEvent(control, "click");
                NimUtil.clearEvent(control, "doubleClick");
                control.Dispose();
            }

            show.Controls.Clear();
        }
Beispiel #3
0
        /// <summary>
        /// 更新会话记录
        /// </summary>
        /// <param name="info">会话信息</param>
        private void updateSession(SessionInfo info)
        {
            var session = sessions.Find(i => i.id == info.Id);

            if (session == null)
            {
                addSession(info);
                return;
            }

            session.message = NimUtil.readMsg(info);
            session.time    = info.Timetag / 1000;
            session.unRead  = info.Id == info.Sender;
        }
Beispiel #4
0
        /// <summary>
        /// 新增会话记录
        /// </summary>
        /// <param name="info">会话信息</param>
        private void addSession(SessionInfo info)
        {
            var user    = NimUtil.getUser(info.Id);
            var session = new NimSessionInfo
            {
                id      = info.Id,
                name    = user.name,
                head    = Util.getImageFromUrl(user.icon),
                message = NimUtil.readMsg(info),
                time    = info.Timetag / 1000,
                unRead  = info.UnreadCount > 0
            };

            sessions.Add(session);
        }
Beispiel #5
0
        /// <summary>
        /// 初始聊天窗口
        /// </summary>
        public void init()
        {
            UserAPI.GetUserNameCard(new List <string> {
                targetId
            }, ret =>
            {
                if (ret != null && ret.Any())
                {
                    var headUrl = ret[0].IconUrl;
                    if (!string.IsNullOrEmpty(headUrl))
                    {
                        mlcMessage.target = NimUtil.getHeadImage(headUrl);
                        return;
                    }
                }

                mlcMessage.target = Util.getImage("icons/head.png");
            });

            if (myHead == null)
            {
                UserAPI.GetUserNameCard(new List <string> {
                    myId
                }, ret =>
                {
                    if (ret != null && ret.Any())
                    {
                        var headUrl = ret[0].IconUrl; if (!string.IsNullOrEmpty(headUrl))
                        {
                            myHead        = NimUtil.getHeadImage(headUrl);
                            mlcMessage.me = myHead;

                            return;
                        }
                    }

                    myHead        = Util.getImage("icons/head.png");
                    mlcMessage.me = myHead;
                });
            }
            else
            {
                mlcMessage.me = myHead;
            }
        }
Beispiel #6
0
        public void Execute(IJobExecutionContext context)
        {
            log.Info("now sync teacher");
            try
            {
                StudyOnlineEntities   entities = new StudyOnlineEntities();
                List <Teacherreginfo> teachers = entities.Teacherreginfo.Where(o => o.IsEnable == 1 && o.IsSync != 1).ToList();
                foreach (var item in teachers)
                {
                    //先创建云信帐号
                    //同步云信帐号系统
                    String json = NimUtil.UserCreate(Guid.NewGuid().ToString().Replace("-", ""), null, null, HttpUtility.UrlEncode(item.Truename));
                    Answer a    = JsonConvert.DeserializeObject <Answer>(json);
                    if (a.code == 200)
                    {
                        //修改数据库状态
                        item.IsSync = 1;

                        //创建新用户
                        NimUser nimUser = new NimUser()
                        {
                            Username = item.Username, Password = item.Password, Category = 1, Accid = a.info.accid, Token = a.info.token, CreateDate = DateTime.Now, IsActive = 1, IsOnline = 0
                        };
                        nimUser.NimUserEx = new NimUserEx()
                        {
                            Email = item.Username, Mobile = item.Phonenumber, Spoken = item.ForeignLanguages, School = item.Education, About = item.Note
                        };
                        entities.NimUser.Add(nimUser);
                    }
                    log.Info(String.Format("Syncint the teacher:{0}", item.Username));
                }

                entities.SaveChanges();
            }
            catch (Exception)
            {
                log.Info("sync failure");
            }
        }