/// <summary>
/// 手机接口 :
/// http://localhost:56505/api/animal/DeviceException/Edit/
/// </summary>
/// <param name="data"></param>
[System.Web.Http.HttpPost, System.Web.Http.HttpPut]
public string Edit(JObject data)
{
try
{
var loghelp = new sys_logService();
var listWrapper = RequestWrapper.Instance().LoadSettingXmlString(@"
<settings>
<table>
DeviceException
</table>
<where>
<field name='CompanyDeviceSerialNum' cp='equal'></field>
<field name='DeviceTypeArgsSerialnum' cp='equal'></field>
</where>
</settings>");
var service = new DeviceExceptionService();
//调试代码
//string strjosn = @"{""data"":[{""list"":{""deleted"":[],""inserted"":[],""updated"":[{""CompanyDeviceSerialNum"":""6df3dd514e844b169fbd2bb105a85315"",""AlarmMax"":""35.0"",""WarnMax"":""30.0"",""DeviceTypeArgsSerialnum"":""Temp"",""WarnMin"":""10.0"",""AlarmMin"":""5.0""}],""_changed"":true}},{""list"":{""deleted"":[],""inserted"":[],""updated"":[{""CompanyDeviceSerialNum"":""6df3dd514e844b169fbd2bb105a85315"",""AlarmMax"":""800.0"",""WarnMax"":""700.0"",""DeviceTypeArgsSerialnum"":""Co2""}],""_changed"":true}},{""list"":{""deleted"":[],""inserted"":[],""updated"":[{""CompanyDeviceSerialNum"":""6df3dd514e844b169fbd2bb105a85315"",""AlarmMax"":""20.0"",""WarnMax"":""4.0"",""DeviceTypeArgsSerialnum"":""Nh3""}],""_changed"":true}}],""ReportAlarmTimes"":""5"",""ReportDataPeriod"":""1""}";
//data = JObject.Parse(strjosn);
loghelp.Logger("post提交数据", "deviceexception/edit/", "修改", data);
Object[] obj = new Object[6];
string mac = "";
foreach (var item in data)
{
foreach (var p in item.Value)
{
OperateInfo info = (OperateInfo)JsonConvert.DeserializeObject(p["list"].ToString(), typeof(OperateInfo));
mac = new CompanyDeviceService().GetCompanyDevice(info.updated[0].CompanyDeviceSerialNum.ToString()).Mac;
if (info.updated[0].DeviceTypeArgsSerialnum == "Co2")
{
obj[2] = info.updated[0].AlarmMax;
}
else if (info.updated[0].DeviceTypeArgsSerialnum == "Temp")
{
obj[0] = info.updated[0].AlarmMax;
obj[1] = info.updated[0].AlarmMin;
}
else if (info.updated[0].DeviceTypeArgsSerialnum == "Nh3")
{
obj[3] = info.updated[0].AlarmMax;
}
}
}
if (!data["ReportDataPeriod"].Any() && data["ReportDataPeriod"].ToString() != "")
{
obj[4] = Math.Round(Convert.ToDecimal(data["ReportDataPeriod"].ToString()) * 60, 0);
}
if (!data["ReportAlarmTimes"].Any() && data["ReportAlarmTimes"].ToString() != "")
{
obj[5] = Convert.ToInt16(data["ReportAlarmTimes"].ToString());
}
var t = new ConfigModel()
{
Action = "set config",
CreateTime = DateTime.Now,
DeviceType = "HTR",
Mac = mac,
Values = obj
};
var msg = JsonConvert.SerializeObject(t);
loghelp.Logger("TCPIP发送数据", "DeviceException/Edit/", "WEBAPI", msg);
var ip = NewLife.Configuration.Config.GetConfig<string>("TCPServiceConfigIP", "218.94.29.186");
var port = NewLife.Configuration.Config.GetConfig<int>("TCPServiceConfigPort", 12008);
var client = new System.Net.Sockets.TcpClient();
try
{
client.Connect(IPAddress.Parse(ip), port);
var ns = client.GetStream();
var buffer = System.Text.Encoding.UTF8.GetBytes(msg);
ns.Write(buffer, 0, buffer.Length);
System.Threading.Thread.Sleep(100);
var rec_buffer = new Byte[1024]; //接收数据缓冲区
//读取回传数据
ns.ReadTimeout = 10 * 1000; //读数据超时时间
var size = ns.Read(rec_buffer, 0, rec_buffer.Length);
var result = System.Text.Encoding.UTF8.GetString(rec_buffer, 0, size);
//成功设置了参数,写数据库。
if (result.ToLower().Equals("true"))
{
foreach (var item in data)
{
foreach (var p in item.Value)
{
OperateInfo info = (OperateInfo)JsonConvert.DeserializeObject(p["list"].ToString(), typeof(OperateInfo));
var result_tmp = service.Edit(null, listWrapper, JObject.Parse(p.ToString()));
}
}
var ret = new CompanyDeviceService().Update(ParamUpdate.Instance()
.Update("CompanyDevice")
.Column("ReportAlarmTimes", obj[5])
.Column("ReportDataPeriod", obj[4])
.AndWhere("Mac", mac));
}
else
{
new sys_logService().Logger("TCPIP返回值", "DeviceException/Edit/", "TCPIP错误", result);
}
ns.Close();
client.Close();
new sys_logService().Logger("测试", "DeviceException/Edit/", "WEBAPI返回值", result.ToLower());
return result.ToLower();
}
catch (Exception ex)
{
new sys_logService().Logger("POST提交数据", "DeviceException/Edit/", "TCPIP错误", ex.Message.ToString());
return "TCPIP_Exception";
}
}
catch (Exception ex)
{
new sys_logService().Logger("POST提交数据", "DeviceException/Edit/", "其它错误", ex.Message.ToString());
return "false";
}
}
/// 手机接口 :
/// http://localhost:56505/api/animal/DeviceException/Edit/
/// </summary>
/// <param name="data"></param>
[System.Web.Http.HttpPost, System.Web.Http.HttpPut]
public string Edit(JObject data)
{
try
{
var loghelp = new sys_logService();
var listWrapper = RequestWrapper.Instance().LoadSettingXmlString(@"
<settings>
<table>
DeviceException
</table>
<where>
<field name='CompanyDeviceSerialNum' cp='equal'></field>
<field name='DeviceTypeArgsSerialnum' cp='equal'></field>
</where>
</settings>");
var service = new DeviceExceptionService();
//调试代码
//string strjosn = @"{""data"":[{""list"":{""deleted"":[],""inserted"":[],""updated"":[{""CompanyDeviceSerialNum"":""6df3dd514e844b169fbd2bb105a85315"",""AlarmMax"":""35.0"",""WarnMax"":""30.0"",""DeviceTypeArgsSerialnum"":""Temp"",""WarnMin"":""10.0"",""AlarmMin"":""5.0""}],""_changed"":true}},{""list"":{""deleted"":[],""inserted"":[],""updated"":[{""CompanyDeviceSerialNum"":""6df3dd514e844b169fbd2bb105a85315"",""AlarmMax"":""800.0"",""WarnMax"":""700.0"",""DeviceTypeArgsSerialnum"":""Co2""}],""_changed"":true}},{""list"":{""deleted"":[],""inserted"":[],""updated"":[{""CompanyDeviceSerialNum"":""6df3dd514e844b169fbd2bb105a85315"",""AlarmMax"":""20.0"",""WarnMax"":""4.0"",""DeviceTypeArgsSerialnum"":""Nh3""}],""_changed"":true}}],""ReportAlarmTimes"":""5"",""ReportDataPeriod"":""1""}";
//data = JObject.Parse(strjosn);
loghelp.Logger("post提交数据", "deviceexception/edit/", "修改", data);
Object[] obj = new Object[6];
string mac = "";
foreach (var item in data)
{
foreach (var p in item.Value)
{
OperateInfo info = (OperateInfo)JsonConvert.DeserializeObject(p["list"].ToString(), typeof(OperateInfo));
mac = new CompanyDeviceService().GetCompanyDevice(info.updated[0].CompanyDeviceSerialNum.ToString()).Mac;
if (info.updated[0].DeviceTypeArgsSerialnum == "Co2")
{
obj[2] = info.updated[0].AlarmMax;
}
else if (info.updated[0].DeviceTypeArgsSerialnum == "Temp")
{
obj[0] = info.updated[0].AlarmMax;
obj[1] = info.updated[0].AlarmMin;
}
else if (info.updated[0].DeviceTypeArgsSerialnum == "Nh3")
{
obj[3] = info.updated[0].AlarmMax;
}
}
}
if (!data["ReportDataPeriod"].Any() && data["ReportDataPeriod"].ToString() != "")
{
obj[4] = Math.Round(Convert.ToDecimal(data["ReportDataPeriod"].ToString()) * 60, 0);
}
if (!data["ReportAlarmTimes"].Any() && data["ReportAlarmTimes"].ToString() != "")
{
obj[5] = Convert.ToInt16(data["ReportAlarmTimes"].ToString());
}
var t = new ConfigModel()
{
Action = "set config",
CreateTime = DateTime.Now,
DeviceType = "HTR",
Mac = mac,
Values = obj
};
var msg = JsonConvert.SerializeObject(t);
loghelp.Logger("TCPIP发送数据", "DeviceException/Edit/", "WEBAPI", msg);
var ip = NewLife.Configuration.Config.GetConfig<string>("TCPServiceConfigIP", "218.94.29.186");
var port = NewLife.Configuration.Config.GetConfig<int>("TCPServiceConfigPort", 12008);
var client = new System.Net.Sockets.TcpClient();
try
{
client.Connect(IPAddress.Parse(ip), port);
var ns = client.GetStream();
var buffer = System.Text.Encoding.UTF8.GetBytes(msg);
ns.Write(buffer, 0, buffer.Length);
System.Threading.Thread.Sleep(100);
var rec_buffer = new Byte[1024]; //接收数据缓冲区
//读取回传数据
ns.ReadTimeout = 10 * 1000; //读数据超时时间
var size = ns.Read(rec_buffer, 0, rec_buffer.Length);
var result = System.Text.Encoding.UTF8.GetString(rec_buffer, 0, size);
//成功设置了参数,写数据库。
if (result.ToLower().Equals("true"))
{
foreach (var item in data)
{
foreach (var p in item.Value)
{
OperateInfo info = (OperateInfo)JsonConvert.DeserializeObject(p["list"].ToString(), typeof(OperateInfo));
var result_tmp = service.Edit(null, listWrapper, JObject.Parse(p.ToString()));
}
}
var ret = new CompanyDeviceService().Update(ParamUpdate.Instance()
.Update("CompanyDevice")
.Column("ReportAlarmTimes", obj[5])
.Column("ReportDataPeriod", obj[4])
.AndWhere("Mac", mac));
}
else
{
new sys_logService().Logger("TCPIP返回值", "DeviceException/Edit/", "TCPIP错误", result);
}
ns.Close();
client.Close();
new sys_logService().Logger("测试", "DeviceException/Edit/", "WEBAPI返回值", result.ToLower());
return result.ToLower();
}
catch (Exception ex)
{
new sys_logService().Logger("POST提交数据", "DeviceException/Edit/", "TCPIP错误", ex.Message.ToString());
return "TCPIP_Exception";
}
}
catch (Exception ex)
{
new sys_logService().Logger("POST提交数据", "DeviceException/Edit/", "其它错误", ex.Message.ToString());
return "false";
}
}