Esempio n. 1
0
        private DataSet getSurveData(DMClient dmc, DateTime fromDate, DateTime toDate)
        {
            DataSet       retValue = new DataSet();
            DataTable     dt       = new DataTable();
            StringBuilder sb       = new StringBuilder();

            sb.Append("SELECT distinct sv.pk1 as gmpk1, sv.name as rtitle ");
            // ,ques.pk1 as qpk1 , ques.question_type
            sb.Append(", c.pk1 as cpk1  , c.course_name as CourseName , c.course_id as CourseID , (select count(*) from deployment_response dr where dr.deployment_pk1=d.pk1 and dr.crsmain_pk1=c.pk1) as sent ");
            sb.Append(", (select count(*) from deployment_response dr where dr.deployment_pk1=d.pk1 and dr.status='RE' and dr.crsmain_pk1=c.pk1) as scored ");
            sb.Append("--@S,CONVERT(char(10), d.start_date, 126) as gmdate\n ");
            sb.Append(" --@O,to_char( d.start_date, 'yyyy-mm-dd') as gmdate\n ");
            sb.Append("FROM clp_sv_survey sv inner JOIN deployment d ON sv.instrument_key = d.collection_key JOIN deployment_response resp on d.pk1 = resp.deployment_pk1 JOIN clp_sv_question ques ON  ques.clp_sv_survey_pk1 = sv.pk1 join course_main c on c.pk1 = resp.crsmain_pk1 where (select count(*) from deployment_response where deployment_pk1=d.pk1 and status='RE') >= 0 ");
            sb.Append("and ( resp.received_date >= @from_date and resp.received_date <= @to_date) ");
            sb.Append(" order by gmpk1,c.pk1");
            string sql = sb.ToString();

            sql = sql.Replace("@from_date", getSqlDate(fromDate));
            sql = sql.Replace("@to_date", getSqlDate(toDate));
            if (dbtype.Equals("oracle") || dbtype.Equals("pgsql"))
            {
                sql = sql.Replace("--@O", "");
            }
            else
            {
                sql = sql.Replace("--@S", "");
            }
            dt           = DMClient.getSqldt(sql, dmc);
            dt.TableName = "Surveys";
            DataTable db = dt.Copy();

            retValue.Tables.Add(db);
            return(retValue);
        }
Esempio n. 2
0
        private void Lbox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            string tt = lbox2.Items[lbox2.SelectedIndex].ToString();
            var    r  = c.DMClients.OrderBy(t => t.Name).AsEnumerable().Where(t => t.Name.Equals(tt)).FirstOrDefault();

            dmc       = new DMClient(r.id, c);
            dmc.token = BbQuery.getToken(dmc.origUrl);
            // authUrl_2.Replace("auth_2", "auth_sha");
            var stem = dmc.origUrl.Substring(0, dmc.origUrl.LastIndexOf('/'));

            authUrl_sha = stem + "/auth_sha.jsp";
            dbtype      = "oracle";
            db          = DMClient.getSqldt("SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'course_main' and COLUMN_NAME='pk1'", dmc);
            string dbt = db.Rows[0][0].ToString();

            /*pgsql
             *  oracle
             *  mssql
             */
            if (dbt.Equals("bigint"))
            {
                dbtype = "pgsql";
            }
            else if (dbt.Equals("int"))
            {
                dbtype = "mssql";
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 直接发送
 /// </summary>
 /// <param name="dmSCRClient"></param>
 /// <param name="dMSCRProtocol"></param>
 public void SendReplyToSCRClient(DMClient dmSCRClient, DMSCRProtocol dMSCRProtocol)
 {
     if (dmSCRClient != null && dMSCRProtocol != null)
     {
         dmSCRClient.Send(dMSCRProtocol.makeMessage());
     }
 }
Esempio n. 4
0
        async Task <DataSet> GetSurveysAsync(DMClient dmc, DateTime fromDate, DateTime toDate)
        {
            DataSet retVal = null;

            //Doing this on another thread using Task.Run
            await Task.Run(() =>
            {
                retVal = getSurveData(dmc, fromDate, toDate);
            });

            return(retVal);
        }
Esempio n. 5
0
        private string getUser(string username)
        {
            Debug.WriteLine("AT getUser check with " + username);
            string    retvalue = "";
            string    sql      = "select u.passwd from users u where u.user_id = '" + username + "'";
            DataTable user     = DMClient.getSqldt(sql, dmc);

            if (user != null && user.Rows.Count > 0 && !user.TableName.Equals("error"))
            {
                retvalue = user.Rows[0]["passwd"].ToString();
            }
            Debug.WriteLine("AT getUser check with password " + retvalue);
            return(retvalue); // Bb stored password
        }
Esempio n. 6
0
        public static void MakeAccess(int svpk1, DMClient dmc)
        {
            DataSet ds = getDataByDocSetPk1(svpk1, dmc);

            using (clp_sv_surveyTableAdapter sva = new clp_sv_surveyTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_surveyDataTable sv = new SurveyTemplateDataSet.clp_sv_surveyDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_survey"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_surveyRow sr = sv.Newclp_sv_surveyRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_sv_answer_choiceTableAdapter sva = new clp_sv_answer_choiceTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_answer_choiceDataTable sv = new SurveyTemplateDataSet.clp_sv_answer_choiceDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_answer_choice"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_answer_choiceRow sr = sv.Newclp_sv_answer_choiceRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_sv_questionTableAdapter sva = new clp_sv_questionTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_questionDataTable sv = new SurveyTemplateDataSet.clp_sv_questionDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_question"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_questionRow sr = sv.Newclp_sv_questionRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_sv_question_responseTableAdapter sva = new clp_sv_question_responseTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_question_responseDataTable sv = new SurveyTemplateDataSet.clp_sv_question_responseDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_question_response"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_question_responseRow sr = sv.Newclp_sv_question_responseRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_sv_question_sogTableAdapter sva = new clp_sv_question_sogTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_question_sogDataTable sv = new SurveyTemplateDataSet.clp_sv_question_sogDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_question_sog"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_question_sogRow sr = sv.Newclp_sv_question_sogRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_sv_subquestionTableAdapter sva = new clp_sv_subquestionTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_subquestionDataTable sv = new SurveyTemplateDataSet.clp_sv_subquestionDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_subquestion"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_subquestionRow sr = sv.Newclp_sv_subquestionRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_sv_survey_deploymentTableAdapter sva = new clp_sv_survey_deploymentTableAdapter())
            {
                SurveyTemplateDataSet.clp_sv_survey_deploymentDataTable sv = new SurveyTemplateDataSet.clp_sv_survey_deploymentDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_sv_survey_deployment"].Rows)
                {
                    SurveyTemplateDataSet.clp_sv_survey_deploymentRow sr = sv.Newclp_sv_survey_deploymentRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (deploymentTableAdapter sva = new deploymentTableAdapter())
            {
                SurveyTemplateDataSet.deploymentDataTable sv = new SurveyTemplateDataSet.deploymentDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["deployment"].Rows)
                {
                    SurveyTemplateDataSet.deploymentRow sr = sv.NewdeploymentRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (deployment_responseTableAdapter sva = new deployment_responseTableAdapter())
            {
                SurveyTemplateDataSet.deployment_responseDataTable sv = new SurveyTemplateDataSet.deployment_responseDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["deployment_response"].Rows)
                {
                    SurveyTemplateDataSet.deployment_responseRow sr = sv.Newdeployment_responseRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            using (clp_deploy_resp_unusedTableAdapter sva = new clp_deploy_resp_unusedTableAdapter())
            {
                SurveyTemplateDataSet.clp_deploy_resp_unusedDataTable sv = new SurveyTemplateDataSet.clp_deploy_resp_unusedDataTable();
                sva.Fill(sv);
                foreach (DataRow dr in ds.Tables["clp_deploy_resp_unused"].Rows)
                {
                    SurveyTemplateDataSet.clp_deploy_resp_unusedRow sr = sv.Newclp_deploy_resp_unusedRow();
                    sr.ItemArray = dr.ItemArray;
                    sv.Rows.Add(sr);
                }
                sva.Update(sv);
            }
            return;
        }
Esempio n. 7
0
        //  _______________________ Make Access _______________________________


        public static DataSet getDataByDocSetPk1(int svpk1, DMClient dmc)
        {
            DataSet retValue = new DataSet();

            /*
             * clp_sv_survey
             * clp_sv_survey_deployment
             * deployment
             * deployment_response
             * clp_sv_answer_choice
             * clp_sv_question
             * clp_sv_question_response
             * clp_sv_question_sog
             * clp_sv_subquestion
             *
             */
            /*
             * clp_sv_survey
             * pk1
             * name
             * description
             * header_body
             * dtcreated
             * dtmodified
             */
            string    sql = "select pk1,name, description,header_body,dtcreated, dtmodified from clp_sv_survey  where pk1 = " + svpk1.ToString();
            DataTable dt  = DMClient.getSqldt(sql, dmc);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                dt.Rows[i]["header_body"] = StripTags(dt.Rows[i]["header_body"].ToString());
            }
            DataTable clp_sv_survey = dt.Copy();

            clp_sv_survey.TableName = "clp_sv_survey";
            retValue.Tables.Add(clp_sv_survey);

            var survey_pk1 = clp_sv_survey.Select().ToList().Select(t => t.Field <string>("pk1")).ToArray <string>().First();

            /*
             * clp_sv_survey_deployment
             * pk1
             * clp_sv_survey_pk1
             * deployment_pk1
             */
            sql = "select pk1,clp_sv_survey_pk1,deployment_pk1  from  clp_sv_survey_deployment  where clp_sv_survey_pk1 = " + survey_pk1.ToString();
            dt  = DMClient.getSqldt(sql, dmc);
            DataTable clp_sv_survey_deployment = dt.Copy();

            clp_sv_survey_deployment.TableName = "clp_sv_survey_deployment";
            retValue.Tables.Add(clp_sv_survey_deployment);

            string[] deployment_pk1 = clp_sv_survey_deployment.Select().ToList().Select(t => t.Field <string>("deployment_pk1")).ToArray <string>();
            string   deps           = String.Join(",", deployment_pk1);

            /*
             * deployment
             * pk1
             * name
             * description
             * status
             * start_date
             * end_date
             * scheduled_start_date
             * scheduled_end_date
             * is_anonymous
             * dtmodified
             */

            sql = "select pk1,name, description, status, start_date, end_date, scheduled_start_date, scheduled_end_date,is_anonymous, dtmodified  from  deployment  where pk1 in (" + deps + ")";
            dt  = DMClient.getSqldt(sql, dmc);
            DataTable deployment = dt.Copy();

            deployment.TableName = "deployment";
            retValue.Tables.Add(deployment);

            string[] pk1s  = deployment.Select().ToList().Select(t => t.Field <string>("pk1")).ToArray <string>();
            string   dpk1s = String.Join(",", pk1s);



            /*
             * deployment_response
             * pk1
             * deployment_pk1
             * email
             * status
             * received_date
             * user_pk1
             * crsmain_pk1
             * crsmain_batch_uid
             */
            /*select dr.pk1, dr.deployment_pk1, dr.email, dr.status, received_date, dr.user_pk1, dr.crsmain_pk1,c.course_name,c.course_id
             * ,dr.crsmain_batch_uid ,u.lastname,u.firstname
             * from  deployment_response  dr
             * join course_main c on c.pk1 =dr.crsmain_pk1
             * join course_users cu on cu.crsmain_pk1 = c.pk1  join users u on u.pk1 = cu.users_pk1    where cu.role ='P' and  dr.deployment_pk1 in (544)*/
            sql = "select dr.pk1, dr.deployment_pk1, dr.email, dr.status, received_date, dr.user_pk1 " +
                  ", dr.crsmain_pk1,c.course_name,c.course_id  " +
                  " ,dr.crsmain_batch_uid ,u.lastname,u.firstname " +
                  ", (select count(*) from deployment_response dr1 where dr1.deployment_pk1 = dr.deployment_pk1 and dr1.crsmain_pk1 = c.pk1) + (select count(*)  from clp_deploy_resp_unused  du where du.deployment_pk1 = dr.deployment_pk1 and du.crsmain_pk1 = c.pk1) as sent " +
                  ", (select count(*) from deployment_response dr1 where dr1.deployment_pk1 = dr.deployment_pk1 and dr1.status = 'RE' and dr1.crsmain_pk1 = c.pk1) as scored  " +
                  "from  deployment_response dr " +
                  " join course_main c on c.pk1 = dr.crsmain_pk1  " +
                  "join course_users cu on cu.crsmain_pk1 = c.pk1 " +
                  " join users u on u.pk1 = cu.users_pk1   " +
                  " where cu.role ='P' and  dr.deployment_pk1 in (" + dpk1s + ")";
            dt = DMClient.getSqldt(sql, dmc);
            DataTable deployment_response = dt.Copy();

            deployment_response.TableName = "deployment_response";
            retValue.Tables.Add(deployment_response);

            List <string> thedrpk1s = deployment_response.Select().ToList().Select(t => t.Field <string>("pk1")).ToList <string>();

            sql = "select pk1, clp_sv_answer_choice_pk1, deployment_response_pk1, answer_text from  clp_sv_question_response  where  deployment_response_pk1 in (@drpk1s)";

            int       block = 50;
            DataTable clp_sv_question_response = new DataTable();

            clp_sv_question_response.TableName = "clp_sv_question_response";
            while (thedrpk1s.Count > 0)
            {
                block = (block > thedrpk1s.Count) ? thedrpk1s.Count : block;
                string drs  = String.Join(",", thedrpk1s.Take <string>(block).ToArray <string>());
                var    msql = sql;
                msql = msql.Replace("@drpk1s", drs);
                dt   = DMClient.getSqldt(msql, dmc);
                DataTable tmp = dt.Copy();
                clp_sv_question_response.Merge(tmp);
                thedrpk1s.RemoveRange(0, block);
            }
            retValue.Tables.Add(clp_sv_question_response);


            /* clp_sv_question_response
             *         pk1
             *         clp_sv_answer_choice_pk1
             *          deployment_response_pk1
             *          answer_text
             */

            /* clp_sv_question
             * pk1
             * clp_sv_survey_pk1
             * qtext_body
             * qtext_type
             * display_order
             * question_type
             * required_ind
             * multi_line_ind*/

            sql = " select pk1, clp_sv_survey_pk1, qtext_body, qtext_type, display_order,  question_type, required_ind, multi_line_ind from clp_sv_question  where  clp_sv_survey_pk1 = " + survey_pk1;
            dt  = DMClient.getSqldt(sql, dmc);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                dt.Rows[i]["qtext_body"] = StripTags(dt.Rows[i]["qtext_body"].ToString());
            }
            DataTable clp_sv_question = dt.Copy();

            clp_sv_question.TableName = "clp_sv_question";
            retValue.Tables.Add(clp_sv_question);

            // var clp_sv_question_pk1 = clp_sv_question.Select().ToList().Select(t => t.Field<string>("pk1")).ToArray<string>().First();
            string[] theqdpk1s = clp_sv_question.Select().ToList().Select(t => t.Field <string>("pk1")).ToArray <string>();
            string   qdpk1s    = String.Join(",", theqdpk1s);

            /*
             * clp_sv_subquestion
             * pk1
             * clp_sv_question_pk1
             * display_order
             * text
             * label_type
             * select_multiple_ind
             * family_uid
             */
            sql = "select pk1,clp_sv_question_pk1, display_order, text, label_type, select_multiple_ind, family_uid from  clp_sv_subquestion  where  clp_sv_question_pk1 in (" + qdpk1s + ")";
            dt  = DMClient.getSqldt(sql, dmc);
            DataTable clp_sv_subquestion = dt.Copy();

            clp_sv_subquestion.TableName = "clp_sv_subquestion";
            retValue.Tables.Add(clp_sv_subquestion);


            string[] subs     = clp_sv_subquestion.Select().ToList().Select(t => t.Field <string>("pk1")).ToArray <string>();
            string   subqpk1s = String.Join(",", subs);

            /*
             *
             * clp_sv_answer_choice
             * pk1
             * clp_sv_subquestion
             * display_order
             * name
             * points
             * open_ended_ind
             * open_ended_text
             * not_applicable_ind
             */

            sql = "select pk1,  clp_sv_subquestion_pk1, display_order, name, points,  open_ended_ind,  open_ended_text, not_applicable_ind from  clp_sv_answer_choice  where  clp_sv_subquestion_pk1 in (" + subqpk1s + ")";
            dt  = DMClient.getSqldt(sql, dmc);
            DataTable clp_sv_answer_choice = dt.Copy();

            clp_sv_answer_choice.TableName = "clp_sv_answer_choice";
            retValue.Tables.Add(clp_sv_answer_choice);



            /*
             * clp_sv_question_sog    pk1, clp_sv_question_pk1,clp_sog_pk1
             */

            sql = "select  pk1, clp_sv_question_pk1, clp_sog_pk1  from  clp_sv_question_sog  where  clp_sv_question_pk1 in  (" + qdpk1s + ")";
            dt  = DMClient.getSqldt(sql, dmc);
            DataTable clp_sv_question_sog = dt.Copy();

            clp_sv_question_sog.TableName = "clp_sv_question_sog";
            retValue.Tables.Add(clp_sv_question_sog);


            /*select cu.deployment_pk1 as deploy_pk1,cu.crsmain_pk1,cu.crsmain_batch_uid,cp.user_pk1,cp.given_name,cp.family_name,cp.email,cp.gender,cp.birthdate
             * from clp_deploy_resp_unused cu
             * join clp_person cp on cp.pk1 = cu.clp_person_pk1
             * where cu.deployment_pk1 = 544 -- deployment_pk1*/

            sql = "select cu.deployment_pk1 as deploy_pk1,cu.crsmain_pk1 as cpk1,cu.crsmain_batch_uid as crs_batch_uid,cp.user_pk1,cp.given_name as firstname " +
                  ",cp.family_name as lastname,cp.email,cp.gender,cp.birthdate  " +
                  " from clp_deploy_resp_unused cu " +
                  " join clp_person cp on cp.pk1 = cu.clp_person_pk1 " +
                  "where  cu.deployment_pk1 in  (" + dpk1s + ")";
            dt = DMClient.getSqldt(sql, dmc);
            DataTable clp_deploy_resp_unused = dt.Copy();

            clp_deploy_resp_unused.TableName = "clp_deploy_resp_unused";
            retValue.Tables.Add(clp_deploy_resp_unused);



            return(retValue);
        }
Esempio n. 8
0
        /// <summary>
        /// 返回以卡查人
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="dMSCRProtocol"></param>
        /// <param name="dmSCRClient"></param>
        /// <returns></returns>
        public DMSCRProtocol getUserDataRep(string deviceId, DMSCRProtocol dMSCRProtocol, DMClient dmSCRClient)
        {
            string      json;
            SCRUserinfo userinfo;

            try
            {
                json     = GetURLWebAPI(_LIMSBookURL, "/selectUserByCard/" + dMSCRProtocol.Card);
                userinfo = JsonSerializer.Deserialize <SCRUserinfo>(json);
            }
            catch (Exception ex)
            {
                writeLog(ex.Message, "人员信息获取端口失败");
                userinfo                = new SCRUserinfo();
                userinfo.userName       = "******";
                userinfo.phonenumber    = "";
                userinfo.instrumentName = "";
                userinfo.bookingStart   = "";
            }
            if (string.IsNullOrEmpty(userinfo.userName))
            {
                userinfo.userName       = "******";
                userinfo.phonenumber    = "";
                userinfo.instrumentName = "";
                userinfo.bookingStart   = "";
            }
            else if (userinfo.userName.Equals("null"))
            {
                userinfo.userName       = "******";
                userinfo.phonenumber    = "";
                userinfo.instrumentName = "";
                userinfo.bookingStart   = "";
            }
            //string com = dMSCRProtocol.otherInfo[0];
            DMSCRProtocol repProtocol;

            repProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)COMMAND.REP_SCR_USERINFO, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));
            //返回卡:设备所属单位,设备和仪器编号,联系人姓名和电话
            string[] info = new string[4];
            info[0] = userinfo.userName;               // "王鑫";
            info[1] = "电话:" + userinfo.phonenumber;    // "13810010112";
            info[2] = "预约:" + userinfo.instrumentName; // "测试预约设备";
            info[3] = "时间:" + userinfo.bookingStart;   // "2021-12-30 11:30";
            info    = repProtocol.replaceComma(info);
            repProtocol.OtherInfo = info;
            return(repProtocol);
        }
Esempio n. 9
0
        public DMSCRProtocol getHelpDataRep(string deviceId, DMSCRProtocol dMSCRProtocol, DMClient dmSCRClient)
        {
            //string com = dMSCRProtocol.otherInfo[0];
            DMSCRProtocol repProtocol;

            repProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)COMMAND.REP_SCR_HELP, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));
            //返回卡:设备所属单位,设备和仪器编号,联系人姓名和电话
            string[] info = new string[4];
            info[0] = _dMServerMainThread.DMEnterprise;
            info[1] = _dMServerMainThread.DMSystemName;
            info[2] = _dMServerMainThread.DMContact;
            info[3] = _dMServerMainThread.DMContactPhone;
            info    = repProtocol.replaceComma(info);
            repProtocol.OtherInfo = info;
            return(repProtocol);
        }
Esempio n. 10
0
 /// <summary>
 /// 写日志集中方法
 /// </summary>
 /// <param name="dmSCRClient"></param>
 /// <param name="logMessage"></param>
 /// <param name="additionalInformation"></param>
 private void writeLog(DMClient dmSCRClient, string logMessage, string additionalInformation)
 {
     log.Error("ID:" + dmSCRClient.DeviceID + " aInfo:" + additionalInformation + " Msg:" + logMessage);
 }
Esempio n. 11
0
        /// <summary>
        /// 获取基础数据
        /// </summary>
        /// <returns></returns>
        public DMSCRProtocol getBasicDataRep(string deviceId, DMSCRProtocol dMSCRProtocol, DMClient dmSCRClient)
        {
            string        com = dMSCRProtocol.OtherInfo[0];
            string        dataJson0;
            int           i = 1;
            DMSCRProtocol repProtocol;

            repProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)COMMAND.REP_SCR_BOOK_INFO, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));



            switch (com)
            {
            case "01":

                List <SCRServiceType> types;
                try
                {
                    dataJson0 = GetURLWebAPI(_LIMSBookURL, "/getServiceType/" + deviceId);
                    types     = JsonSerializer.Deserialize <List <SCRServiceType> >(dataJson0);
                }
                catch (Exception ex)
                {
                    writeLog(ex.Message, "GetURLWebAPI getServiceType");
                    dataJson0 = TestData.ServiceTypes;
                    types     = JsonSerializer.Deserialize <List <SCRServiceType> >(dataJson0);
                }

                repProtocol.OtherInfo    = new string[types.Count + 1];
                repProtocol.OtherInfo[0] = com;
                foreach (var t in types)
                {
                    repProtocol.OtherInfo[i] = t.serviceType;
                    i++;
                }
                //repProtocol.makeMessage();
                return(repProtocol);

                break;

            case "02":
                List <SCRSubjectIncome> incomes;
                try
                {
                    dataJson0 = GetURLWebAPI(_LIMSBookURL, "/getSubjectIncome/" + deviceId);
                    incomes   = JsonSerializer.Deserialize <List <SCRSubjectIncome> >(dataJson0);
                }
                catch (Exception ex)
                {
                    writeLog(ex.Message, "GetURLWebAPI getSubjectIncome");
                    dataJson0 = TestData.SubjectIncomes;
                    incomes   = JsonSerializer.Deserialize <List <SCRSubjectIncome> >(dataJson0);
                }

                repProtocol.OtherInfo    = new string[incomes.Count + 1];
                repProtocol.OtherInfo[0] = com;
                foreach (var income in incomes)
                {
                    repProtocol.OtherInfo[i] = income.subjectIncome;
                    i++;
                }
                //repProtocol.makeMessage();
                return(repProtocol);

                break;

            case "03":
                List <SCRServiceDirection> directions;
                try
                {
                    dataJson0  = GetURLWebAPI(_LIMSBookURL, "/getServiceWay/" + deviceId);
                    directions = JsonSerializer.Deserialize <List <SCRServiceDirection> >(dataJson0);
                }
                catch (Exception ex)
                {
                    writeLog(ex.Message, "GetURLWebAPI getServiceWay");
                    dataJson0  = TestData.ServiceDirections;
                    directions = JsonSerializer.Deserialize <List <SCRServiceDirection> >(dataJson0);
                }

                repProtocol.OtherInfo    = new string[directions.Count + 1];
                repProtocol.OtherInfo[0] = com;
                foreach (var direction in directions)
                {
                    repProtocol.OtherInfo[i] = direction.serviceDirection;
                    i++;
                }
                //repProtocol.makeMessage();
                return(repProtocol);

                break;
            }
            return(null);
        }
Esempio n. 12
0
        /// <summary>
        /// 处理SCR数据 暂时越过
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="command"></param>
        /// <returns></returns>
        public string HandleServerMessage(string deviceId, COMMAND command, DMClient dmSCRClient, DMSCRProtocol dMSCRProtocol)
        {
            string jsonResult0 = "";
            string jsonResult1 = "";

            switch (command)
            {
            case COMMAND.SCR_DEV_INFO:    //11
                //响应获取仪器信息
                jsonResult0 = getInstrumentInformationJSON(deviceId);
                SendReplyToSCRClient(COMMAND.REP_SCR_DEV_INFO, dmSCRClient, jsonResult0);
                break;

            case COMMAND.SCR_STATE_BOOK:    //12
                //响应获取仪器状态和未来的预约情况 test
                //jsonResult0 = TestData.InstrumentStatus;
                //jsonResult1 = TestData.InstrumentFutureStatus;

                try
                {
                    jsonResult0 = GetURLWebAPI(_LIMSBookURL, "/getInstrumentStatus/" + deviceId);
                    jsonResult1 = GetURLWebAPI(_LIMSBookURL, "/getInstrumentFutureStatus/" + deviceId);     //12月没返回数据 webapi要改
                    if (string.IsNullOrEmpty(dmSCRClient.InstrumentName))
                    {
                        SCRInstrumentInformation dataIn = getInstrumentInformation(dmSCRClient.DeviceID);
                        dmSCRClient.InstrumentName    = dataIn.cname;
                        dmSCRClient.InstrumentVersion = dataIn.instrVersion;
                    }
                    SendReplyToSCRClient(COMMAND.REP_SCR_STATE_BOOK, dmSCRClient, jsonResult0, jsonResult1);
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "SCR_STATE_BOOK");
                }
                break;

            case COMMAND.SCR_BOOK_CALENDAR:    //15
                //响应仪器日历情况
                //jsonResult0 = TestData.InstrumentCalendar;
                jsonResult0 = getCalendarBookingJSON(deviceId, dMSCRProtocol);

                SendReplyToSCRClient(COMMAND.REP_SCR_BOOK_CALENDAR, dmSCRClient, jsonResult0);

                break;

            case COMMAND.SCR_BOOK_DATE:    //16
                //当天预约查询
                //jsonResult0 = TestData.InstrumentDayBooking;
                jsonResult0 = getBookingByDateJSON(deviceId, dMSCRProtocol);
                SendReplyToSCRClient(COMMAND.REP_SCR_BOOK_DATE, dmSCRClient, jsonResult0);
                break;

            case COMMAND.SCR_BOOK_INFO:
                //响应获取预约基础数据
                try
                {
                    DMSCRProtocol rep = getBasicDataRep(deviceId, dMSCRProtocol, dmSCRClient);
                    SendReplyToSCRClient(dmSCRClient, rep);
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "SCR_BOOK_INFO");
                }
                break;

            case COMMAND.SCR_BOOKING:
                //提交预约
                //string json = GetURLWebAPI(_LIMSBookURL, "agreed/getInstrumentInformation/" + deviceId);
                jsonResult0 = submitBooking(dMSCRProtocol);
                SendReplyToSCRClient(COMMAND.REP_SCR_BOOKING, dmSCRClient, jsonResult0);
                break;

            case COMMAND.SCR_HELP:
                //获取帮助
                try
                {
                    DMSCRProtocol rep = getHelpDataRep(deviceId, dMSCRProtocol, dmSCRClient);
                    SendReplyToSCRClient(dmSCRClient, rep);
                }
                catch (Exception ex) {
                    writeLog(dmSCRClient, ex.Message, "SCR_HELP");
                }
                break;

            case COMMAND.SCR_USERINFO:    //19
                //获取用户数据
                try
                {
                    DMSCRProtocol rep = getUserDataRep(deviceId, dMSCRProtocol, dmSCRClient);
                    SendReplyToSCRClient(dmSCRClient, rep);
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "SCR_USERINFO");
                }
                break;
            }
            return("");
        }
Esempio n. 13
0
        /// <summary>
        /// 提交预约数据等 后回复设备
        /// </summary>
        /// <param name="command"></param>
        /// <param name="dmSCRClient"></param>
        /// <param name="jsonResult0"></param>
        /// <param name="jsonResult1"></param>
        public void SendReplyToSCRClient(COMMAND command, DMClient dmSCRClient, string jsonResult0, string jsonResult1 = null)
        {
            DMSCRProtocol dMSCRProtocol;

            switch (command)
            {
            //仪器信息
            case COMMAND.REP_SCR_DEV_INFO:    //51
                dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                try
                {
                    SCRInstrumentInformation data = JsonSerializer.Deserialize <SCRInstrumentInformation>(jsonResult0);
                    dMSCRProtocol.setSCRInstrumentInformation(data);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_DEV_INFO故障");
                }
                break;

            //回复屏幕首页信息
            case COMMAND.REP_SCR_STATE_BOOK:    //52
                try
                {
                    dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)STAT.UNCHANGING, (int)POWERSTAT.UNCHANGING, DateTime.Now.ToString("yyyyMMddHHmmss"));
                    SCRInstrumentStatus       status       = JsonSerializer.Deserialize <SCRInstrumentStatus>(jsonResult0);
                    SCRInstrumentFutureStatus futureStatus = new SCRInstrumentFutureStatus()
                    {
                        bookingStart = "",
                        phonenumber  = "",
                        userName     = ""
                    };
                    if (!string.IsNullOrEmpty(jsonResult1))
                    {
                        futureStatus = JsonSerializer.Deserialize <SCRInstrumentFutureStatus>(jsonResult1);
                    }
                    dMSCRProtocol.setSCRInstrumentStatusAndFutureStatus(dmSCRClient.InstrumentName, status, futureStatus);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_STATE_BOOK");
                }
                break;

            case COMMAND.REP_SCR_BOOK_CALENDAR:
                try
                {
                    List <SCRBookingPeriod> periodList = JsonSerializer.Deserialize <List <SCRBookingPeriod> >(jsonResult0);
                    dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                    dMSCRProtocol.setSCRCalendar(periodList);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_BOOK_CALENDAR");
                }
                break;

            case COMMAND.REP_SCR_BOOK_DATE:    //56
                try
                {
                    List <SCRBookingByDayInformation> bookingList = JsonSerializer.Deserialize <List <SCRBookingByDayInformation> >(jsonResult0);
                    dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                    dMSCRProtocol.setSCRBookings(bookingList);
                    dmSCRClient.Send(dMSCRProtocol.makeMessage());
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_BOOK_DATE");
                }
                break;

            case COMMAND.REP_SCR_BOOKING:
                dMSCRProtocol = new DMSCRProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, dmSCRClient.DeviceID, (int)dmSCRClient.Stat, (int)dmSCRClient.Powerstat, DateTime.Now.ToString("yyyyMMddHHmmss"));
                try
                {
                    SCRBookingREP scrBookingREP = JsonSerializer.Deserialize <SCRBookingREP>(jsonResult0);
                    if (scrBookingREP.code == 500)
                    {
                        if (scrBookingREP.msg.Length > 16)
                        {
                            dMSCRProtocol.setSCRBookingResult(scrBookingREP.msg.Substring(0, 15));
                        }
                        else
                        {
                            dMSCRProtocol.setSCRBookingResult(scrBookingREP.msg);
                        }
                    }
                    else
                    {
                        dMSCRProtocol.setSCRBookingResult(scrBookingREP.msg);
                    }
                }
                catch (Exception ex)
                {
                    writeLog(dmSCRClient, ex.Message, "REP_SCR_BOOKING");
                    if (jsonResult0.Length > 16)
                    {
                        dMSCRProtocol.setSCRBookingResult(jsonResult0.Substring(0, 15));
                    }
                    else
                    {
                        dMSCRProtocol.setSCRBookingResult(jsonResult0);
                    }
                }
                dmSCRClient.Send(dMSCRProtocol.makeMessage());
                break;
            }
        }