Пример #1
0
        private void CalcTime()
        {
            WsUserModel usu = GetCurUser();

            if (usu != null)
            {
                IActivityDAL dalAct = new ActivityImpl();
                string[]     t      = dalAct.GetCurTime(usu.idActivityAssistance).Split(':');
                int          hr     = Convert.ToInt32(t[0]);
                int          mm     = Convert.ToInt32(t[1]);
                int          ss     = Convert.ToInt32(t[2]);
                string       actualTime;
                object       res;
                for (int h = hr; h < 3; h++)
                {
                    if (usu.idActivityAssistance == -5)
                    {
                        break;
                    }
                    for (int m = mm; m < 60; m++)
                    {
                        for (int s = ss; s < 60; s++)
                        {
                            if (usu.idActivityAssistance != -5)
                            {
                                actualTime = FixTime(h) + ":" + FixTime(m) + ":" + FixTime(s);
                                res        = dalAct.UpdateTime(actualTime, usu.idActivityAssistance);
                                if (res != null)
                                {
                                    Clients.AllExcept(GetExcepts(usu)).UpdateTime(res);
                                }
                                Thread.Sleep(1000);
                            }
                        }
                        ss = 0;
                    }
                    mm = 0;
                }
                if (usu.idActivityAssistance != -5)
                {
                    actualTime = "03:00:00";
                    res        = dalAct.UpdateTime(actualTime, usu.idActivityAssistance);
                    if (res != null)
                    {
                        Clients.AllExcept(GetExcepts(usu)).UpdateTime(res);
                    }
                    bool res2 = dalAct.StopTime(usu.idActivityAssistance, usu.user.idUser);
                    if (res2)
                    {
                        usu.idActivityAssistance = -5;
                        Clients.AllExcept(GetExcepts(usu)).StopCurActivitie(res);
                    }
                }
                try {
                    Thread.CurrentThread.Abort();
                } catch (Exception e) {
                }
            }
        }
Пример #2
0
        private string[] GetExcepts(WsUserModel usu)
        {
            List <string> list = new List <string>();

            foreach (var userCon in UserConnections)
            {
                if (userCon.Key != usu.user.idUser)
                {
                    foreach (var con in userCon.Value.connectionsId)
                    {
                        list.Add(con);
                    }
                }
            }
            return(list.ToArray());
        }
Пример #3
0
        public void ChangeTime(int id)
        {
            WsUserModel usu = GetCurUser();

            if (usu != null)
            {
                if (id != usu.idActivityAssistance && usu.idActivityAssistance != -5)
                {
                    IActivityDAL dalAct = new ActivityImpl();
                    bool         res    = dalAct.StopTime(id, usu.user.idUser);
                    if (res)
                    {
                        usu.idActivityAssistance = -5;
                        Clients.AllExcept(GetExcepts(usu)).StopCurActivitie(res);
                    }
                }
                else
                {
                    usu.idActivityAssistance = id;
                    if (usu.thread == null || usu.idActivityAssistance == -5)
                    {
                        if (usu.thread != null)
                        {
                            try {
                                usu.thread.Abort();
                                usu.thread = null;
                            } catch (Exception e) {
                            }
                        }
                        usu.thread = new Thread(CalcTime);
                        usu.thread.Start();
                    }
                    else
                    {
                        try {
                            usu.thread.Abort();
                            usu.thread = null;
                            Clients.AllExcept(GetExcepts(usu)).UpdateTime(new { stop = true });
                        } catch (Exception e) {
                        }
                    }
                }
            }
        }
Пример #4
0
        private WsUserModel GetCurUser()
        {
            IUserDAL us   = new UserDALImp();
            User     user = us.Get_User(Convert.ToInt32(Context.Request.User.Identity.Name));

            if (UserConnections.TryGetValue(user.idUser, out WsUserModel usu))
            {
                return(usu);
            }
            else if (user != null)
            {
                usu = new WsUserModel {
                    user                 = user,
                    connectionsId        = new List <string>(),
                    idActivityAssistance = -5
                };
                usu.connectionsId.Add(Context.ConnectionId);
                UserConnections.Add(usu.user.idUser, usu);
                return(usu);
            }
            return(null);
        }
Пример #5
0
 public override Task OnConnected()
 {
     if (Context.User.Identity.IsAuthenticated)
     {
         IUserDAL us   = new UserDALImp();
         User     user = us.Get_User(Convert.ToInt32(Context.Request.User.Identity.Name));
         if (UserConnections.TryGetValue(user.idUser, out WsUserModel usu))
         {
             usu.connectionsId.Add(Context.ConnectionId);
         }
         else
         {
             usu = new WsUserModel {
                 user                 = user,
                 connectionsId        = new List <string>(),
                 idActivityAssistance = -5
             };
             usu.connectionsId.Add(Context.ConnectionId);
             UserConnections.Add(usu.user.idUser, usu);
         }
     }
     return(base.OnConnected());
 }
Пример #6
0
        public void StopSessionActivity(int id)
        {
            WsUserModel usu = GetCurUser();

            if (usu != null)
            {
                IActivityDAL dalAct = new ActivityImpl();
                bool         res    = dalAct.StopTime(id, usu.user.idUser);
                if (res)
                {
                    if (usu.thread != null)
                    {
                        try {
                            usu.thread.Abort();
                            usu.thread = null;
                            Clients.AllExcept(GetExcepts(usu)).UpdateTime(new { stop = true });
                        } catch (Exception e) {
                        }
                    }
                    usu.idActivityAssistance = -5;
                    Clients.AllExcept(GetExcepts(usu)).StopCurActivitie(res);
                }
            }
        }
Пример #7
0
        public void StartActivity(string curUrl)
        {
            WsUserModel usu = GetCurUser();

            Clients.AllExcept(GetExcepts(usu)).NewActivity(curUrl);
        }