Exemple #1
0
        private void btnRequestActive_Click(object sender, EventArgs e)
        {
            JsonResult jr = RemoteServiceProxy.RequestActive(machineCode, "我要申请激活");

            if (jr.error)
            {
                //AddLog("error=" + jr.message);
                UIHelper.ShowAlert(jr.message);
            }
            else
            {
                //AddLog("success=" + jr.message);
                UIHelper.ShowInfo(jr.message);
            }
        }
Exemple #2
0
        private void btnSyncActive_Click(object sender, EventArgs e)
        {
            JsonResult jr = RemoteServiceProxy.SyncActive(machineCode);

            if (jr.error)
            {
                UIHelper.ShowAlert(jr.message);
            }
            else
            {
                long tick = 0;
                long.TryParse(jr.data["expiredTime"], out tick);
                tick = tick / 1000;



                // AddLog("success=" + jr.message);
                //save
                int n = 0;
                if (tick == 0)
                {
                    SqlLiteHelper.ExecuteNonQuery("update system set active_code=?,node_name=?,active_time=datetime('now','localtime'),node_id=?,expire_time=null",
                                                  jr.data["licenseKey"], jr.data["name"], jr.data["classroomId"]);
                }
                else
                {
                    DateTime expire_time = UnixTool.ConvertIntDateTime(tick);
                    if (expire_time.CompareTo(System.DateTime.Now) <= 0)
                    {
                        //到期了
                        expired = true;
                        UIHelper.ShowAlert("激活信息已经失效,请与总部联系");
                        return;
                    }


                    n = SqlLiteHelper.ExecuteNonQuery("update system set active_code=?,node_name=?,active_time=datetime('now','localtime'),node_id=?,expire_time=datetime(?, 'unixepoch', 'localtime')",
                                                      jr.data["licenseKey"], jr.data["name"], jr.data["classroomId"], tick);
                }
                // int n = SqlLiteHelper.ExecuteNonQuery("update system set node_id=?", jr.data["classroomId"]);
                UIHelper.ShowInfo("成功同步激活信息");
                ShowSuccess(true);

                DialogResult = DialogResult.OK;
            }
        }
Exemple #3
0
        private void btnSyncCourse_Click(object sender, EventArgs e)
        {
            JsonResultList jr = RemoteServiceProxy.SyncCourse(FrmActive.machineCode, FrmActive.activeCode);

            StoreModel.ProcessNotActived(jr);

            if (jr.error)
            {
                AddLog("错误:" + jr.message);
                UIHelper.ShowAlert(jr.message);
                return;
            }
            // AddLog("success=" + jr.message);
            //save
            string sql = @"select course_no,removed from course";

            //load all
            DataSet ds = SqlLiteHelper.ExecuteQuery(sql);
            Dictionary <string, bool> exists_courses = new Dictionary <string, bool>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                string course_no = row["course_no"].ToString();
                bool   removed   = (bool)row["removed"];

                exists_courses.Add(course_no, removed);
            }

            //所有数据是否存在,所有都要更新,多出来的还没删掉的,要标记为删除
            int updateCount = 0;
            int insertCount = 0;

            foreach (var row in jr.data)
            {
                int idx = GetCourseCategoryIndex(row["categoryNo"]);
                //去除击中的
                string course_no = row["courseNo"];
                if (exists_courses.ContainsKey(course_no))
                {
                    //update
                    int n = SqlLiteHelper.ExecuteNonQuery("update course set course_name=?,key=?,course_category=?,sub_category=?,updated_time=datetime('now','localtime'),removed=? where course_no=?", row["courseName"], row["courseKey"],
                                                          idx, row["subCategoryName"], false, course_no);
                    //remove hits
                    exists_courses.Remove(course_no);

                    //AddLog("update result=" + n.ToString());
                    updateCount++;
                }
                else
                {
                    //insert
                    int n = SqlLiteHelper.ExecuteNonQuery(@"insert into course (course_name,key,course_no,course_category,sub_category,created_time,updated_time,removed)
                                    values( ?,?,?,?,?,datetime('now','localtime'),datetime('now','localtime'),?)",
                                                          row["courseName"], row["courseKey"], row["courseNo"], idx, row["subCategoryName"], false);


                    //AddLog("insert result=" + n.ToString());
                    insertCount++;
                }
            }

            //尚未集中的,如果没有标为删除,则标为删除
            int cc = 0;

            foreach (var row in exists_courses)
            {
                if (!row.Value)
                {
                    SqlLiteHelper.ExecuteNonQuery("update course set removed=?,updatedTime=datetime('now','localtime') where course_no=?", true, row.Key);
                    cc++;
                }
            }

            AddLog("新增课程:" + insertCount.ToString());
            AddLog("更新课程:" + updateCount.ToString());
            AddLog("移除课程:" + cc.ToString());
        }
Exemple #4
0
        private void btnSyncCourseTask_Click(object sender, EventArgs e)
        {
            /*JsonResult jr = RemoteServiceProxy.UploadWork(@"C:\Users\乙郎\Pictures\7cbc9488-0a4b-4ab5-a6ed-70e319096680.png", "12", "14");
             * AddLog("result=" + jr.message);*/

            EnableButton(false);
            List <long> courseTaskIds = StoreModel.GetFinishCourseTaskIds();

            pb.Maximum = courseTaskIds.Count;
            int syncCount    = 0;
            int successCount = 0;
            int errorCount   = 0;

            foreach (var id in courseTaskIds)
            {
                syncCount++;
                pb.Value = syncCount;


                CourseTask     ct   = StoreModel.GetById(id);
                JsonResultList list = RemoteServiceProxy.Report(ct, FrmActive.machineCode, FrmActive.activeCode);

                if (list.error)
                {
                    AddLog("同步课程任务失败:" + id.ToString() + " 错误信息:" + list.message);
                    errorCount++;
                    continue;
                }


                List <WorkInfo4Upload> works = RemoteServiceProxy.PrepareWork(ct.Works, list.data);

                //然后传到服务器!--作品!
                bool error = false;
                foreach (var w in works)
                {
                    JsonResult jr = RemoteServiceProxy.ReportWork(w);
                    if (jr.error)
                    {
                        AddLog("同步作品失败:" + id.ToString() + " 作品=" + w.StudentNo);
                        error = true;
                        continue;
                    }
                }
                if (!error)
                {
                    StoreModel.FinishReportCourseTask(id);
                    StoreModel.RemoveFiles(ct.Works);
                    successCount++;
                }
                else
                {
                    errorCount++;
                }
            }

            //全部更新完成了
            //界面刷新一下
            this.UpdateLeftCourseCount();
            pb.Value = 0;
            EnableButton(true);

            AddLog("同步数量:" + syncCount.ToString() + " 成功数量:" + successCount.ToString() + " 错误数量:" + errorCount.ToString());
        }
Exemple #5
0
        public static void Main()
        {
            // setup trace
            TextWriterTraceListener traceLog = new TextWriterTraceListener("log.txt");

            Debug.Listeners.Add(traceLog);

            Trace.WriteLine("start at : " + DateTime.Now.ToLongDateString());

            //// create a fake course task
            //long id = 1;
            ////CourseTask ct = StoreModel.GetById(id);
            //CourseTask ct = new CourseTask();
            //ct.Master = new CardInfo()
            //{
            //    No = "400001",
            //    Name = "舒凡",
            //    Rfid = "T:5"
            //};
            //ct.BeginTime = DateTime.Now;
            //ct.EndTime = DateTime.Now;
            //ct.CourseId = 1;
            //ct.CourseNo = "123";
            //ct.Assistant1 = new CardInfo()
            //{
            //    No = "500001",
            //    Name = "舒凡",
            //    Rfid = "T:5"
            //};
            //ct.Id = 18;
            //ct.Status = CourseTask.STATUS_START;
            //ct.AddStudent(new CardInfo()
            //{
            //    No = "17",
            //    Name = "苏鹂",
            //    Rfid = "S:23"
            //});
            //ct.AddWork(new WorkInfo()
            //{
            //    FilePath = "work1.png",
            //    StudentNo = "17",
            //});
            //JsonResultList list = RemoteServiceProxy.Report(ct, "730427b2ec993b13b3f6697faab1cf",
            //    "abc");
            //if (list.error)
            //{
            //    Trace.TraceWarning("report course failed! Exit!!!");
            //    return;
            //}

            //List<WorkInfo4Upload> works = RemoteServiceProxy.PrepareWork(ct.Works, list.data);

            ////然后传到服务器!--作品!
            //bool error = false;
            //foreach (var w in works)
            //{

            WorkInfo4Upload w = new WorkInfo4Upload()
            {
                FilePath           = "student-button.png",
                ResultStudentId    = 17,
                CourseTaskResultId = 16,
            };
            JsonResult jr = RemoteServiceProxy.ReportWork(w);

            if (jr.error)
            {
                //Trace.TraceWarning("同步作品失败:" + id.ToString() + " 作品=" + w.StudentNo);
                //error = true;
                //continue;
            }
            //}

            //if (error)
            //{
            //    Trace.TraceError("There are errors when handle the work uploading.");
            //}
        }