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); }
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"; } }
/// <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()); } }
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); }
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 }
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; }
// _______________________ 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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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(""); }
/// <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; } }