软测单独项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

214 lines
8.2 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Reflection;
using System.Collections;
using System.IO;
using System.Text;
namespace FangYar.WebUI.ashx
{
/// <summary>
/// CarHandler 的摘要说明
/// </summary>
public class CarTest : IHttpHandler
{
FangYar.BLL.TBL_CARACCESS bll = new FangYar.BLL.TBL_CARACCESS();
FangYar.BLL.TBL_SYS_CAR car_bll = new FangYar.BLL.TBL_SYS_CAR();
public void ProcessRequest(HttpContext context)
{
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Other, "车辆测试操作请求", "");
context.Response.ContentType = "text/plain";
string returnStr = "";
returnStr = ReceiveAlarmInfoPlate(context);
context.Response.Write(returnStr);
}
private string ReceiveAlarmInfoPlate(HttpContext context)
{
WriteLog("进入!");
HttpRequest request = context.Request;
Stream stream = request.InputStream;
string data = string.Empty;
string response = string.Empty;
bool isadd = false;
if (stream.Length != 0)
{
try
{
StreamReader streamReader = new StreamReader(stream);
data = streamReader.ReadToEnd();
WriteLog(data.ToString());
#region 用于传递数据的输出
if (stream.Length != 0)
{
WriteLog(data.ToString());
}
#endregion
string[] sArray = data.Split('&');
FangYar.Model.TBL_CARACCESS model = new FangYar.Model.TBL_CARACCESS();
for (int i = 0; i < sArray.Length; i++)
{
string[] keyValue = sArray[i].Split('=');
PropertyInfo[] propertys = model.GetType().GetProperties();
Hashtable ht = new Hashtable();
if (keyValue[0].ToUpper() == "TYPE" && keyValue[1] != "online")
{
isadd = false;
break;
}
else if (keyValue[0].ToUpper() == "TYPE")
{
model.TYPE = keyValue[1];
}
else if (keyValue[0].ToUpper() == "PLATE_NUM")
{
model.CAR_PLATE = keyValue[1];
}
else if (keyValue[0].ToUpper() == "PLATE_COLOR")
{
model.COLOR = keyValue[1];
}
else if (keyValue[0].ToUpper() == "CAR_COLOR")
{
model.CAR_COLOR = keyValue[1];
}
else if (keyValue[0].ToUpper() == "CAR_LOGO")
{
model.CAR_LOGO = keyValue[1];
}
else if (keyValue[0].ToUpper() == "PARK_ID")
{
model.PARK_ID = keyValue[1];
}
else if (keyValue[0].ToUpper() == "CAM_ID")
{
model.CAMERA_ID = keyValue[1];
if (keyValue[1] == "18030004bdef")//进
{
model.INOROUT = "0";
}
else
{
model.INOROUT = "1";
}
}
else if (keyValue[0].ToUpper() == "START_TIME")
{
string str = keyValue[1];
long unixTimeStamp = long.Parse(str);
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
DateTime dt = startTime.AddSeconds(unixTimeStamp);
model.START_TIME = dt;
}
else if (keyValue[0].ToUpper() == "PICTURE")
{
string str = keyValue[1].Replace('-', '+').Replace('_', '/').Replace('.', '=');
string dummyData = str.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
if (dummyData.Length % 4 > 0)
{
dummyData = dummyData.PadRight(dummyData.Length + 4 - dummyData.Length % 4, '=');
}
byte[] byteArray = Convert.FromBase64String(dummyData);
model.PICTURE = byteArray;
}
else if (keyValue[0].ToUpper() == "CLOSEUP_PIC")
{
string str = keyValue[1].Replace('-', '+').Replace('_', '/').Replace('.', '=');
string dummyData = str.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
if (dummyData.Length % 4 > 0)
{
dummyData = dummyData.PadRight(dummyData.Length + 4 - dummyData.Length % 4, '=');
}
byte[] byteArray = Convert.FromBase64String(dummyData);
model.CLOSEUP_PIC = byteArray;
}
isadd = true;
}
if (isadd)
{
model.ID = Guid.NewGuid().ToString("N");
model.ORG_ID = "fc21743dcaad4225b8be141dd47d8a2f";
FangYar.Model.TBL_SYS_CAR car_model = car_bll.CarNumGetModel(model.ORG_ID, model.CAR_PLATE);
if (car_model != null)
{
model.CLASS = car_model.CLASS;
}
else
{
model.CLASS = "2";
}
isadd = bll.Add(model);
}
}
catch (Exception e)
{
WriteLog(e.Message);
// 记录操作日志
BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "车辆测试操作请求", "车辆测试操作请求异常:" + e);
}
}
else
{
WriteLog("输入流的长度为0!");
}
if (isadd == true)
{
return "true";
}
else
{
return "false";
}
}
private void WriteLog(string msg)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "log\\caraccess\\";
string filename = DateTime.Now.ToString("yyyyMMdd") + ".txt";
if (Directory.Exists(path) == false)//如果不存在就创建文件夹
{
Directory.CreateDirectory(path);
}
FileInfo file = new FileInfo(path + filename);
if (!file.Exists)
{
FileStream fs;
fs = File.Create(path + filename);
fs.Close();
}
using (FileStream fs = new FileStream(path + filename, FileMode.Append, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine("时间:" + DateTime.Now.ToString() + " 信息:" + msg);
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}