90 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
using BLL;
 | 
						|
using Newtonsoft.Json;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Configuration;
 | 
						|
using System.Web.Http;
 | 
						|
 | 
						|
namespace WebAPI.Controllers
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// 
 | 
						|
    /// </summary>
 | 
						|
    public class VideoController : ApiController
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// 
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public Model.ResponeData getVideoInfor(string projectId)
 | 
						|
        {
 | 
						|
            Model.ResponeData responeData = new Model.ResponeData();
 | 
						|
            try
 | 
						|
            {               
 | 
						|
                string url =ConfigurationManager.AppSettings["Video_URL"];
 | 
						|
                var project = BLL.ProjectService.GetProjectByProjectId(projectId);
 | 
						|
                string URLToken = "";
 | 
						|
                String restoken = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/login?username=" + project.ProjectCode + "&password=" + Funs.EncryptionPassword(project.MonitorPW));
 | 
						|
                Dictionary<string, string> dicres = JsonConvert.DeserializeObject<Dictionary<string, string>>(restoken);
 | 
						|
                URLToken = dicres["URLToken"];
 | 
						|
                List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
 | 
						|
                responeData.data = data;
 | 
						|
                List<string> urls = new List<string>();
 | 
						|
                string res = APIGetHttpService.Http(url + "api/v1/device/channeltree?token=" + URLToken);
 | 
						|
                List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
 | 
						|
                foreach (Dictionary<string, string> nvr in jsonNvr)
 | 
						|
                {
 | 
						|
                   
 | 
						|
                        string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]+ "&token="+URLToken);
 | 
						|
                        data.AddRange(JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras));
 | 
						|
                    
 | 
						|
                }
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                responeData.code = 0;
 | 
						|
                responeData.message = ex.Message;
 | 
						|
                ErrLogInfo.WriteLog(ex, "WX接口-监控视频", "VideoController.getVideoInfor");
 | 
						|
            }
 | 
						|
 | 
						|
            return responeData;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <param name="serial"></param>
 | 
						|
        /// <param name="code"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public Model.ResponeData getVideoUrl(string projectId, string serial, string code)
 | 
						|
        {
 | 
						|
            var responeData = new Model.ResponeData();
 | 
						|
            try
 | 
						|
            {
 | 
						|
                string url = ConfigurationManager.AppSettings["Video_URL"];
 | 
						|
                var project = BLL.ProjectService.GetProjectByProjectId(projectId);
 | 
						|
 | 
						|
                string URLToken = "";
 | 
						|
                String restoken = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/login?username=" + project.ProjectCode + "&password=" + Funs.EncryptionPassword(project.MonitorPW));
 | 
						|
                Dictionary<string, string> dicres = JsonConvert.DeserializeObject<Dictionary<string, string>>(restoken);
 | 
						|
                URLToken = dicres["URLToken"];
 | 
						|
 | 
						|
                
 | 
						|
                var stmp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() + "";
 | 
						|
                string jsonCamera = APIGetHttpService.Http(url + "api/v1/stream/start?token="+URLToken+"&serial=" + serial + "&code=" + code + "&_=" + stmp);
 | 
						|
                responeData.data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonCamera);
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                responeData.code = 0;
 | 
						|
                responeData.message = ex.Message;
 | 
						|
                ErrLogInfo.WriteLog(ex, "WX接口-监控视频", "VideoController.getVideoUrl");
 | 
						|
            }
 | 
						|
 | 
						|
            return responeData;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |