Example #1
0
 void IMessengerEngine.FilterTopicMsgs(string agentUri, comm.TopicFilterMsg msg)
 {
     using (var client = create_client_proxy(agentUri))
     {
         send_message(agentUri, "hub.FilterTopic",
             () => client.FilterTopicMsgs(msg));
     }
 }
Example #2
0
 private void update_failure_counters(comm.FilterInfo msg)
 {
     Interlocked.Increment(ref _counters.FilterInfoIoMsgFailed);
 }
Example #3
0
        private void update_failure_counters(comm.PublishMsg msg)
        {
            Interlocked.Increment(ref _counters.PublishMsgIoFailed);

            var topic = msg.Topic;
            Interlocked.Increment(ref topic.Details.Counters.IoFailed);

            if (msg.RetryCount == 0)
                Interlocked.Increment(ref topic.Details.Counters.MsgNotSent);
        }
Example #4
0
        private void retry_io(comm.IoMsg msg)
        {
            var retryIt = msg.Retry;

            for (;;)    // do only once
            {
                if (retryIt == null)
                    break;

                if (msg.RetryCount == 0)
                    break;

                Interlocked.Increment(ref _counters.IoRetry);

                msg.RetryCount--;
                retryIt();

                return;
            }

            Interlocked.Increment(ref _counters.MsgNotSent);
        }
Example #5
0
        void IMessengerEngine.SendPublishMsg(string agentUri, comm.PublishMsg msg)
        {
            Action sendIt = () => {
                var proxy = get_agent_proxy(agentUri);
                proxy.Publish(msg);
            };

            msg.Retry = sendIt;
            msg.RetryCount = _cachedConfig.Client.PublishRetryCount;

            sendIt();

            Interlocked.Increment(ref _counters.PublishMsgSent);
        }
Example #6
0
        void IMessengerEngine.SendHelloMsg(comm.HelloMsg msg)
        {
            using (var hub = create_hub_proxy(_hubUri))
            {
                send_message(_hubUri, "client.hello",
                    () => hub.Hello(msg));
            }

            Interlocked.Increment(ref _counters.HelloMsgSent);
        }
Example #7
0
        void ISignalsHub.Hello(comm.HelloMsg msg)
        {
            //            _log.Trace("Client's hello msg no {0} snapshotId {1} from '{2}'", msg.SequentialId, msg.SnapshotId, msg.AgentUri);

            var now = DateTime.UtcNow;

            var snapshotId = msg.SnapshotId;

            Interlocked.Increment(ref _counters.HelloMsgsGot);

            var agent = _repo.GetAgent(msg.AgentUri);
            agent.ServiceName = msg.ServiceName;

            clear_remote_agents_on_first_hello(agent);

            _repo.SetConsequentSnapshotId(agent, snapshotId, now);

            var dirtyAgents = _repo.QueryDirtyAgents(agent, snapshotId);

            if (dirtyAgents.IsEmpty())
                return;

            _log.Info("Hello no={0} snapshotId={1} from '{2}'; agent has {3} dirty agents",
                msg.SequentialId, snapshotId, msg.AgentUri, dirtyAgents.Length);

            var cleanAgents = _agents.send_hello_msgs(dirtyAgents, agent, snapshotId);
            _repo.AgentsAreUpdated(agent, cleanAgents, snapshotId);

            Interlocked.Add(ref _counters.HelloMsgsSent, cleanAgents.Length);
        }
Example #8
0
        private void update_failure_counters(comm.IoMsg msg)
        {
            Action<comm.IoMsg> handler;

            if (!_msg2failureHandler.TryGetValue(msg.GetType(), out handler))
            {
                Interlocked.Increment(ref _counters.UnknownMsgIoFailed);
                return;
            }

            try
            {
                handler(msg);
            }
            catch (Exception ex)
            {
                _log.Warn(ex, "Failed to handle failed message");
            }
        }
        public HttpResponseMessage RiZhiYo(string userid,string seeid,string logtick)
        {
            string res = "";
            BaseService baseservice = new BaseService();
            string sqlstr = "";
                if (logtick == "0")
                {
                    sqlstr = "with cte as " +
                                "( " +
                                " select row=row_number()over(order by getdate()), * from WktuserShareUserId where SharePresonid =  " + userid.ToString() + "and WktUserId=" + seeid.ToString() + " and WktuserShareUserId.STATE = 0 and WriteTime > " + logtick.ToString() +
                                ") " +
                                " select * from cte where row between " + "1" + " and " + "10";
                }
                else
                {
                    sqlstr = "with cte as " +
                                "( " +
                                " select row=row_number()over(order by getdate()), * from WktuserShareUserId where SharePresonid =  " + userid.ToString() + "and WktUserId=" + seeid.ToString() + " and WktuserShareUserId.STATE = 0 and WriteTime < " + logtick.ToString() +
                                ") " +
                                " select * from cte where row between " + "1" + " and " + "10";

                }
                IList nbhstaff = baseservice.ExecuteSQL(sqlstr);
                List<RiZhiinfo> stafflist = new List<RiZhiinfo>();
                if (nbhstaff != null && nbhstaff.Count > 0)
                {
                    for (int i = 0; i < nbhstaff.Count; i++)
                    {
                        object[] sf = (object[])nbhstaff[i];
                        RiZhiinfo st = new RiZhiinfo();
                        // Personinfo p = new Personinfo();
                        st.PersonId = sf[3].ToString();//分享人的ID
                        st.PersonName = sf[6].ToString();//分享人的姓名
                        WkTUser user = new WkTUser();
                        user = (WkTUser)baseservice.loadEntity(user, Convert.ToInt64(st.PersonId));
                        long m = user.Kdid.Id;
                        WkTDept dept = new WkTDept();
                        dept = (WkTDept)baseservice.loadEntity(dept, m);
                        st.PersonDept = dept.KdName;//分享人的部门
                        st.Logtick = sf[4].ToString();
                        st.PersonMD5code = user.ImgMD5Code;
                        st.Contenttxt140 = HtmlToReguFormat140(sf[5].ToString());//日志内容去格式前140
                        //st.ContenttxtAll = sf[5].ToString();//日志全部内容
                        st.RizhiTime = new DateTime(Convert.ToInt64(sf[4].ToString())).ToString("yyyy年MM月dd日 HH:mm:ss");//日志时间
                        st.RizhiId = sf[7].ToString(); //日志id
                        st.Imglist = HtmlToReguForimg(sf[5].ToString());//日志图片
                        List<Comments> q = new List<Comments>();
                        List<comm> ps = new List<comm>();
                        IList c = baseservice.loadEntityList("from StaffLog where State=" + (int)IEntity.stateEnum.Normal + "and Id=" + st.RizhiId);
                        if (c != null && c.Count > 0)
                        {
                            foreach (StaffLog n in c)
                            {
                                IList<Comments> r = n.Comments;
                                foreach (Comments s in r)
                                {
                                    string sqql = "select u from WkTUser u where u.KuName='" + s.CommentPersonName.Trim() + "'";
                                    WkTUser ww = (WkTUser)baseservice.loadEntityList(sqql)[0];
                                    comm p = new comm();
                                    p.Id = ww.Id.ToString();
                                    p.Na = s.CommentPersonName;//评论人名字
                                    //IList d = baseservice.loadEntityList("from StaffLog where State=" + 758);
                                    //foreach(WkTUser d1 in d)
                                    //{
                                    //    p.Id = d1.Id;
                                    //}
                                    p.Co = s.Content;//评论内容
                                    p.Commtime = new DateTime(s.TimeStamp).ToString("yyyy年MM月dd日 HH:mm:ss");
                                    ps.Add(p);
                                }
                            }
                        }
                        st.Comments = ps;
                        stafflist.Add(st);
                    }
                    RiZhiAll l = new RiZhiAll();
                    l.List = stafflist;
                    res = "成功";
                    string data = JsonTools.ObjectToJson(l);
                    var jsonStr = "{\"Message\":" + "\"" + res + "\"" + "," + "\"data\":" + data + "}";
                    var result = new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new StringContent(jsonStr, Encoding.UTF8, "text/json")
                    };
                    return result;
                }
                else
                {
                    res = "没有内容";
                    string data = "1";//JsonTools.ObjectToJson(l);
                    var jsonStr = "{\"Message\":" + "\"" + res + "\"" + "," + "\"data\":" + data + "}";
                    var result = new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new StringContent(jsonStr, Encoding.UTF8, "text/json")
                    };
                    return result;
                }
        }
        public HttpResponseMessage GetRiZhi2(string userid, string seeid, string logtick)
        {
            string res = "";
            string sql1 = "select u from WkTUser u where u.KuName='" + userid + "'";
            string sql2 = "select u from WkTUser u where u.Id='" + seeid + "'";
            string sql3 = "select u.DeptId from Wktuser_M_Dept u where u.WktuserId=" + userid + " and u.State = " + (int)IEntity.stateEnum.Normal;
            BaseService baseservice = new BaseService();
            List<WkTDept> theDepts = new List<WkTDept>();
            IList theone = baseservice.loadEntityList(sql3);
            if (theone != null && theone.Count > 0)
            {
                List<RiZhiinfo> stafflist = new List<RiZhiinfo>();
                WkTUser user = new WkTUser();
                user = (WkTUser)baseservice.loadEntity(user, Convert.ToInt64(seeid));
                string m = user.Kdid.Id.ToString();
                int flog = 1;
                for (int i = 0; i < theone.Count; i++)
                {

                    string a = "";
                    a = ((WkTDept)theone[i]).Id.ToString();
                    if (a == m)
                    {
                        flog = 0;
                        string sqlstr = "";
                        if (logtick == "0")
                        {
                            sqlstr = "with cte as " +
                                        "( " +
                                        " select row=row_number()over(order by getdate()), * from LOG_T_STAFFLOG where WktUserId=" + seeid.ToString() + " and WriteTime > " + logtick.ToString() +
                                        ") " +
                                        " select * from cte where row between " + "1" + " and " + "10";
                        }
                        else
                        {
                            sqlstr = "with cte as " +
                                        "( " +
                                        " select row=row_number()over(order by getdate()), * from LOG_T_STAFFLOG where WktUserId=" + seeid.ToString() + " and WriteTime < " + logtick.ToString() +
                                        ") " +
                                        " select * from cte where row between " + "1" + " and " + "10";
                        }
                        IList one = baseservice.ExecuteSQL(sqlstr);

                        if (one != null && one.Count > 0)
                        {
                            for (int j = 0; j < one.Count; j++)
                            {
                                object[] sf = (object[])one[j];
                                RiZhiinfo st = new RiZhiinfo();
                                //// Personinfo p = new Personinfo();
                                st.PersonId = sf[4].ToString();//分享人的ID

                                WkTUser user1 = new WkTUser();
                                user1 = (WkTUser)baseservice.loadEntity(user1, Convert.ToInt64(st.PersonId));
                                st.PersonName = user1.KuLid;//分享人的姓名
                                //long mm = user1.Kdid.Id;
                                WkTDept dept = new WkTDept();
                                dept = (WkTDept)baseservice.loadEntity(dept, Convert.ToInt64(m));
                                st.PersonDept = dept.KdName;//分享人的部门
                                st.Logtick = sf[3].ToString();
                                st.PersonMD5code = user1.ImgMD5Code;
                                st.Contenttxt140 = HtmlToReguFormat140(sf[2].ToString());//日志内容去格式前140
                                ////st.ContenttxtAll = sf[5].ToString();//日志全部内容
                                st.RizhiTime = new DateTime(Convert.ToInt64(sf[3].ToString())).ToString("yyyy年MM月dd日 HH:mm:ss");//日志时间
                                st.RizhiId = sf[1].ToString(); //日志id
                                st.Imglist = HtmlToReguForimg(sf[2].ToString());//日志图片
                                List<Comments> q = new List<Comments>();
                                List<comm> ps = new List<comm>();
                                IList c = baseservice.loadEntityList("from StaffLog where State=" + (int)IEntity.stateEnum.Normal + "and Id=" + st.RizhiId);
                                if (c != null && c.Count > 0)
                                {
                                    foreach (StaffLog n in c)
                                    {
                                        IList<Comments> r = n.Comments;
                                        foreach (Comments s in r)
                                        {
                                            string sqql = "select u from WkTUser u where u.KuName='" + s.CommentPersonName.Trim() + "'";
                                            WkTUser ww = (WkTUser)baseservice.loadEntityList(sqql)[0];
                                            comm p = new comm();
                                            p.Id = ww.Id.ToString();
                                            p.Na = s.CommentPersonName;//评论人名字
                                            //IList d = baseservice.loadEntityList("from StaffLog where State=" + 758);
                                            //foreach(WkTUser d1 in d)
                                            //{
                                            //    p.Id = d1.Id;
                                            //}
                                            p.Co = s.Content;//评论内容
                                            p.Commtime = new DateTime(s.TimeStamp).ToString("yyyy年MM月dd日 HH:mm:ss");
                                            ps.Add(p);
                                        }
                                    }
                                }
                                st.Comments = ps;
                                stafflist.Add(st);
                            }
                        }
                    }
                }
                RiZhiAll l = new RiZhiAll();
                l.List = stafflist;
                res = "成功";
                string data = JsonTools.ObjectToJson(l);
                var jsonStr = "{\"Message\":" + "\"" + res + "\"" + "," + "\"data\":" + data + "}";
                var result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(jsonStr, Encoding.UTF8, "text/json")
                };
                return result;

                if(flog==1)
                {
                    return RiZhiYo(userid, seeid, logtick);

                }
            }
            else
            {
                return RiZhiYo(userid, seeid, logtick);

            }
        }
Example #11
0
 bool IRemoteDispatcher.FilterTopicMsgs(string target, comm.TopicFilterMsg msg)
 {
     _messenger.FilterTopicMsgs(target, msg);
     Interlocked.Increment(ref _counters.FilterTopicMsgsSent);
     return true;
 }
Example #12
0
 void IRemoteRepo.FilterTopicMsgs(comm.TopicFilterMsg msg, PFilterFunc[] filters)
 {
     lock (_mutex) _impl.FilterTopicMsgs(msg, filters);
 }
Example #13
0
        void IRemoteRepo.FilterTopicMsgs(comm.TopicFilterMsg msg, PFilterFunc[] filters)
        {
            var agent = get_agent(msg.AgentToFilter);

            if (agent.SnapshotId > msg.SnapshotId)
                return;

            if (agent.FilteredTopics == null)
                agent.FilteredTopics = new List<FilteredTopic>();

            var topic = new FilteredTopic
                {
                    TopicGuid = msg.TopicGuid,
                    TopicName = msg.TopicName,
                    Filters = filters,
                    FilterInfos = msg.Filters
                };

            agent.FilteredTopics.Add(topic);
        }
Example #14
0
 private void update_failure_counters(comm.TopicFilterMsg msg)
 {
     Interlocked.Increment(ref _counters.TopicFilterMsgIoFailed);
 }
Example #15
0
        void IMessengerEngine.FilterTopicMsgs(string agentUri, comm.TopicFilterMsg msg)
        {
            var proxy = get_agent_proxy(agentUri);
            proxy.FilterTopicMsgs(msg);

            Interlocked.Increment(ref _counters.FilterTopicMsgSent);
        }
Example #16
0
 private void update_failure_counters(comm.HeartbeatMsg msg)
 {
     Interlocked.Increment(ref _counters.HeartbeatMsgIoFailed);
 }
Example #17
0
        void IMessengerEngine.IoFailed(IAgentWriter proxy, comm.IoMsg msg, Exception ex, string at)
        {
            Interlocked.Increment(ref _counters.IoFailed);
            update_failure_counters(msg);

            var msgType = msg.GetType().Name;

            _log.Error("Msg ({0}): io error in '{1}' of '{2}' (retryCount={3}) to agent '{4}' (agent will be reconnected); {5}",
                msg.Guid.AsStr(), at, msgType, msg.RetryCount, msg.AgentUri, ex.Message);

            var removedAgent = _agents.RemoveAgent(proxy);

            if (removedAgent == null)
                return;

            _connector.DisconnectAgent(removedAgent);

            retry_io(msg);
        }
Example #18
0
        //-------------------
        public static void game()
        {
            // string
            intf();
            string action = Console.ReadLine();
            comm   line   = new comm(action.ToLower());
            string main   = line.main;
            string arg    = line.getkey(0);

            //П А С К А Л Ь К Е Й С  Н Е Н У Ж О Н

            switch (line.main.ToLower())
            {
            /*-------------------*/
            case "сорт":
                if (line.ArgsCount == 1)
                {
                    try
                    {
                        kolbtype a = kolblist.Find(kolbtype => kolbtype.name == line.getkey(0));
                        if (a != null)
                        {
                            currtype = a;
                        }
                        else
                        {
                            Console.WriteLine("не наиден");
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("не наиден");
                    }
                }
                else
                {
                    Console.WriteLine("(сорт (имя))");
                    Console.WriteLine(currtype.name);
                }
                break;

            /*-------------------*/
            case "сорта":
                foreach (kolbtype a in kolblist)
                {
                    Console.WriteLine($"{a.amount} {a.name} (цена {a.cost})");
                }
                break;

            /*-------------------*/
            case "сделать":
                try
                {
                    switch (line.getkey(0))
                    {
                    case "сорт":
                        kolbtype a = new kolbtype {
                            name = "новоя", cost = 1
                        };
                        a.name = line.getkey(1);
                        a.cost = Convert.ToInt32(line.getkey(2));
                        kolblist.Add(a);
                        break;

                    case "приколюху":

                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("не ьвыьшло........");
                }
                break;

            /*-------------------*/
            case "читы":
                try
                {
                    if (line.ArgsCount >= 1)
                    {
                        if (line.getkey(1) == null)
                        {
                            int kolb = Convert.ToInt32(line.getkey(0));
                            currtype.amount += kolb;
                        }

                        if (line.ArgsCount >= 2)
                        {
                            if (line.getkey(0) == "колбаса")
                            {
                                int numb = Convert.ToInt32(line.getkey(1));
                                currtype.amount += numb;
                            }
                            if (line.getkey(0) == "деньги")
                            {
                                int numb = Convert.ToInt32(line.getkey(1));
                                money += numb;
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("ИДИ НАХУЙ");
                }
                break;

            /*-------------------*/
            case "продать":
                if (line.getkey(0) == "колбасу")
                {
                    if (currtype.amount > 0)
                    {
                        sell();
                    }
                    else
                    {
                        Console.WriteLine("а нечего продавать-то");
                    }
                }
                break;

            /*-------------------*/
            case "колбаса":
                if (m > 0)
                {
                    currtype.amount += kpa;
                    if (currtype.amount < 0)
                    {
                        Console.WriteLine("колбасная сингулярность ослаблена");
                    }
                }
                else
                {
                    Console.WriteLine("нету мяса........");
                }
                break;

            /*-------------------*/
            case "купить":
                if (line.ArgsCount >= 1)
                {
                    switch (line.getkey(0))
                    {
                    case "ножницы":
                        if (money >= 8)
                        {
                            money -= 8;
                            kpa   *= 2;
                            Console.WriteLine("куплены");
                        }
                        else
                        {
                            Console.WriteLine("недостаточьно денег!!!!");
                        }
                        break;

                    case "мясо":
                        if (money > 0)
                        {
                            if (line.getkey(1) != null)
                            {
                                try
                                {
                                    int a = Convert.ToInt32(line.getkey(1));
                                    if (money >= a)
                                    {
                                        if (a >= 0)
                                        {
                                            m += a;
                                        }
                                        else
                                        {
                                            Console.WriteLine("еггог");
                                        }
                                    }
                                    else
                                    {
                                        Console.WriteLine("недостаточьно денег!!!!");
                                    }
                                }
                                catch
                                {
                                    Console.WriteLine("еггог");
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("недостаточьно денег!!!!");
                        }
                        break;
                    }
                }
                break;

            /*-------------------*/
            case "чек":

                Console.WriteLine($"{currtype.amount} колбасы сорта {currtype.name}");
                Console.WriteLine($"{money} деняг");
                Console.WriteLine($"{m} мяса");
                break;

            /*-------------------*/
            case "магазин":

                Console.WriteLine("тестовыи магазин");
                Console.WriteLine("(купить (предмет))");
                Console.WriteLine("ножницы - 8 денях");
                Console.WriteLine("бумага - 16 денях");
                Console.WriteLine("постбинарный конвертер колбасных полей - 32 денях");

                break;

            /*-------------------*/
            default:
                Console.WriteLine("енге");
                break;
                /*оформление by DJ_ikonnikov*/
            }

            game();
        }
Example #19
0
 void comm.ISignalsHub.Hello(comm.HelloMsg msg)
 {
     _target.Hello(msg);
 }