using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using HDL_ON.DAL.Server;
using HDL_ON.UI.UI2.PersonalCenter.PirDevice;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.UI.UI2.FuntionControlView.Video
{
public class VideoSend
{
///
/// 检查住宅是否绑定丰林,并获取门口机列表
///
///
public static ResponsePackNew GetVideo()
{
var jObject = new JObject { { "homeId", PirSend.HomeId } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_Check);
return responsePackNew;
}
///
/// 获取通话记录
///
///
public static ResponsePackNew GetCall()
{
var jObject = new JObject { { "homeId", PirSend.HomeId }, { "pageSize", int.MaxValue } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_GetCallList);
return responsePackNew;
}
///
/// 获取门口机列表(1室内机,2室外机,3围墙机,4管理机,5二次确认机)
///
public static List GetVideoInfoList(VideoClouds video)
{
List eSVideoInfosList = new List();
var jobject = new JObject();
jobject.Add("cmtID", video.flCmtId);
jobject.Add("unitno", video.flBuildingId);
jobject.Add("method", "getUUIDList");
try
{
var str = HttpWebRequest(NewAPI.API_POST_FL_List, jobject.ToString(), "POST");
if (string.IsNullOrEmpty(str))
{
return eSVideoInfosList;
}
var json = JObject.Parse(str);
if (json == null)
{
return eSVideoInfosList;
}
if (json["resCode"].ToString() != "0")
{
return eSVideoInfosList;
}
eSVideoInfosList = Newtonsoft.Json.JsonConvert.DeserializeObject>(json["list"].ToString());
}
catch { }
return eSVideoInfosList;
}
///
/// 获取可视对讲设备列表
///
///
public static ResponsePackNew GetVideoInfoList()
{
var jobject = new JObject();
jobject.Add("homeId", PirSend.HomeId);//1382596006055460866
var requestJson = HttpUtil.GetSignRequestJson(jobject);//数据签名
// 获取可视对讲设备列表
var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDeviceList, requestJson);
return revertObj;
}
///
/// 上报动态开锁密码(注意:密码有可能延时1分钟生效)
///
public static void GetQRcode(FrameLayout frame, Video video, Action action)
{
///标记是否成功
bool if_bool = false;
//临时密码
string pwd = VideoMethod.GetCode();
var jobject = new JObject();
jobject.Add("communityID", video.flRoomBindVO.flCmtId);//社区ID
jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//开始时间
jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//有效时间
jobject.Add("unitno", video.flRoomBindVO.flBuildingId);//单元号
jobject.Add("roomno", video.flRoomBindVO.flRoomId);//房间号
jobject.Add("code", pwd);
jobject.Add("userKey", video.flRoomBindVO.id);
jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp());
jobject.Add("secretKey", video.flRoomBindVO.flSecretKey);
jobject.Add("method", "setdynamicpwd");
jobject.Add("numTimes", "5");
//加载log
Loading loading = new Loading();
frame.AddChidren(loading);
loading.Start();
new System.Threading.Thread(() =>
{
try
{
var str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST");
if (!string.IsNullOrEmpty(str))
{
var json = JObject.Parse(str);
if (json != null)
{
var stateCode = json["status"].ToString();
if (stateCode == "0")
{
if_bool = true;
}
}
}
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
loading.Hide();
action(if_bool, pwd);
});
}
})
{ IsBackground = true }.Start();
}
///
/// 下载图片
///
public static void GetIcon(FrameLayout frame,string url)
{
Loading loading = new Loading();
frame.AddChidren(loading);
loading.Start();
new System.Threading.Thread(() =>
{
try
{
var responsePackNew = RequestServerhomeId(null, url);
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
loading.Hide();
});
}
})
{ IsBackground = true }.Start();
}
///
/// 请求服务器的方法(支持请求方式为POST/GET)
///
/// 请求的地址
/// 请求数据
/// 请求方式为POST/GET
/// 超时时间
///
public static string HttpWebRequest(string getUrl, string str, string method, int second = 3)
{
try
{
HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //创建请求
request.Method = method; //请求方式为POST/GET
request.ContentType = "application/json";
request.Timeout = second * 1000;//超时时间
if (method == "POST")
{
byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str);
request.ContentLength = jsonbyte.Length;
Stream postStream = request.GetRequestStream();
postStream.Write(jsonbyte, 0, jsonbyte.Length);
postStream.Close();
}
//发送请求并获取相应回应数据
HttpWebResponse res;
try
{
res = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8);
string content = sr.ReadToEnd(); //获得响应字符串
return content;
}
catch
{
return null;
}
}
///
///请求服务器(与住宅有关:例如;homeId)
///
///
public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 20)
{
var requestJson = HttpUtil.GetSignRequestJson(o);
return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
}
}
class FlResponsePackNew
{//
public string status = string.Empty;
public string desc = string.Empty;
}
}