コード例 #1
0
        public List <SYNCOperation> GetList(TableObject table)
        {
            string CacheEnable = ConfigurationManager.AppSettings["CacheEnable"];
            string key         = CacheUtility.GetKey(table);
            object obj         = CacheUtility.Get(key);

            if (obj != null)
            {
                return((List <SYNCOperation>)obj);
            }
            string sqlStr = "select * from SYNCOperation where LastModified>@LastModified";

            List <SqlParameter> pms = new List <SqlParameter>();

            pms.Add(new SqlParameter("LastModified", table.LastModified));
            List <SYNCOperation> list = SYNCOperationBLL.Search(sqlStr, pms.ToArray());

            if (list.Count > 0)
            {
                byte[] b = new byte[8];
                if (CacheUtility.GetCollectionKey(table.LastModified) == CacheUtility.GetCollectionKey(b))
                {
                    CacheUtility.Insert(key, list);
                }
                else
                {
                    if (CacheEnable == "true")
                    {
                        CacheUtility.Insert(key, list);
                    }
                }
            }
            return(list);
        }
コード例 #2
0
        public ActionResult Upadate(long AssignID)
        {
            PadSYNC.Model.AssignCourse ac = PadSYNC.BLL.AssignCourseBLL.GetById(AssignID);
            try
            {
                ac.Gid = Guid.NewGuid();
                //新增必须为0,不为0会更改原纪录
                ac.AssignID = 0;
                //排课状态为排定
                ac.AsignStatus = 1;
                //5表示来源是Pad
                ac.CourseSourceType = 5;
                //异常类型
                ac.AbnormalReasonType = 0;
                string        json = JsonConvert.SerializeObject(ac);
                SYNCOperation op   = new SYNCOperation();
                op.Id     = ac.AssignID;
                op.Gid    = ac.Gid;
                op.Name   = "AssignCourse";
                op.Status = 0;
                SYNCOperationBLL.Insert(op);
                Send.Push(json);
                string result = "Success";
                return(Content(result, "application/json"));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message, "application/json"));
            }

            //return View();
        }
コード例 #3
0
        public void UpdateTable(string tableName, string data)
        {
            List <SYNCOperation> list = JsonConvert.DeserializeObject <List <SYNCOperation> >(data);

            foreach (SYNCOperation item in list)
            {
                SYNCOperationBLL.Save(item);
            }
            ;
            //Common.UpdateTableVersion("CloudCourse.dbo.SYNCOperation");
        }
コード例 #4
0
        public ActionResult UpdateCourseInOne(string data)
        {
            string result = "Failed";

            try
            {
                List <PadSYNC.Model.AssignCourse> list = JsonConvert.DeserializeObject <List <PadSYNC.Model.AssignCourse> >(data);
                //测试消息队列用
//                List<PadSYNC.Model.AssignCourse> list = AssignCourseBLL.Search(@"select top 5 starttime,endtime,* from [CloudCourse].[dbo].[AssignCourse]
//                where SchoolID=18 and studentuserid=1303839
//                 order by assignid desc");

                if (list != null)
                {
                    foreach (PadSYNC.Model.AssignCourse ac in list)
                    {
                        //ac.Gid = Guid.NewGuid();
                        //新增必须为0,不为0会更改原纪录
                        //ac.AssignID = 0;
                        //排课状态为排定
                        //ac.AsignStatus = 1;
                        //5表示来源是Pad
                        //ac.CourseSourceType = 5;
                        //异常类型
                        //ac.AbnormalReasonType = 0;
                        string        json = JsonConvert.SerializeObject(ac);
                        SYNCOperation op   = new SYNCOperation();
                        op.Id     = ac.AssignID;
                        op.Gid    = ac.Gid;
                        op.Name   = "AssignCourse";
                        op.Status = 0;
                        SYNCOperationBLL.Insert(op);
                        Send.Push(json);
                        result = "Success";
                    }
                }
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }
            return(Content(result));
        }
コード例 #5
0
        static void Main(string[] args)
        {
            //test
            //Test();
            //return;

            //GetAC();
            //return;
            //test over
            string hostName = ConfigurationManager.AppSettings["RabbitMQHostName"];
            string userName = ConfigurationManager.AppSettings["RabbitMQUserName"];
            string password = ConfigurationManager.AppSettings["RabbitMQPassword"];
            var    factory  = new ConnectionFactory()
            {
                HostName = hostName, UserName = userName, Password = password
            };

            factory.AutomaticRecoveryEnabled = true;
            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare("AssignCourseSYNC", true, false, false, null);
                    var consumer = new QueueingBasicConsumer(channel);
                    channel.BasicConsume("AssignCourseSYNC", false, consumer);

                    Console.WriteLine(" [*] Waiting for messages." +
                                      "To exit press CTRL+C");
                    while (true)
                    {
                        var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
                        Console.WriteLine("获得消息*---*" + ea.DeliveryTag);
                        var body    = ea.Body;
                        var message = Encoding.UTF8.GetString(body);
                        PadSYNC.Model.AssignCourse ac = null;
                        SYNCOperation op = null;
                        //清除消息队列用
                        //channel.BasicAck(ea.DeliveryTag, false);
                        //continue;
                        try
                        {
                            #region 处理消息
                            ac = JsonConvert.DeserializeObject <PadSYNC.Model.AssignCourse>(message);
                            //ac.Gid = new Guid("D67C7F51-29A1-4CA8-ACDF-08512FB3E8DF");
                            op = SYNCOperationBLL.GetById(ac.Gid);
                            //op.Id = ac.AssignID;


                            AssignCourseDataContract acdc = Translate.TranslateAssignCourseEntityToGuest(ac);
                            bool   b      = false;
                            string result = "";
                            AssignCourseServiceClient client = new AssignCourseServiceClient();
                            Console.WriteLine("处理消息*---*" + ea.DeliveryTag);
                            if (ac.PadOperType == 0)
                            {
                                b = client.AddNewAssignCourseRetErrowString(out result, acdc);
                            }
                            else
                            {
                                List <CancelReasonConditionsDataContract> CancelReasonConditionsList = new List <CancelReasonConditionsDataContract>();
                                CancelReasonConditionsDataContract        cancelReasonConditions     = new CancelReasonConditionsDataContract();
                                cancelReasonConditions.AssignID = ac.AssignID;
                                cancelReasonConditions.Reason   = "";
                                CancelReasonConditionsList.Add(cancelReasonConditions);
                                CancelReasonConditionsDataContract[] arr = CancelReasonConditionsList.ToArray();
                                b      = client.CancleAssignCourse(arr, 0, 0, 1);
                                result = "取消失败";
                            }

                            if (b)
                            {
                                result    = "Success";
                                op.Status = 1;
                            }
                            else
                            {
                                op.Status  = 2;
                                op.Content = result;
                            }
                            Console.WriteLine("处理成功 {0}", op.Gid + "*---*" + result);
                            channel.BasicAck(ea.DeliveryTag, false);
                            #endregion
                        }
                        catch (Exception ex)
                        {
                            if (op != null)
                            {
                                op.Status  = 2;
                                op.Content = ex.Message;
                            }
                            Console.WriteLine("处理失败 {0}", "*---*" + ex.Message);
                        }
                        if (op != null)
                        {
                            SYNCOperationBLL.Save(op);
                        }

                        //Thread.Sleep(3000);
                    }
                }
            }
        }