103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Net;
 | |
| using System.Web.Http;
 | |
| using Newtonsoft.Json;
 | |
| using System.Collections;
 | |
| using System.IO;
 | |
| using System.Text;
 | |
| using BLL;
 | |
| using Microsoft.SqlServer.Server;
 | |
| using System.Configuration;
 | |
| using System.Linq;
 | |
| using Model;
 | |
| 
 | |
| namespace WebAPI.Controllers
 | |
| {
 | |
|     /// <summary>
 | |
|     /// 
 | |
|     /// </summary>
 | |
|     public class VideoController : ApiController
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="projectId"></param>
 | |
|         /// <returns></returns>
 | |
|         public Model.ResponeData getVideoInfor(string projectId)
 | |
|         {
 | |
|             var responeData = new Model.ResponeData();
 | |
|             try
 | |
|             {
 | |
|                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|                 {
 | |
|                     Base_Project project = null;
 | |
|                     if (!string.IsNullOrEmpty(projectId))
 | |
|                     {
 | |
|                         project = db.Base_Project.FirstOrDefault(x => x.ProjectId == projectId);
 | |
|                     }
 | |
|                     string url = ConfigurationManager.AppSettings["Video_URL"];
 | |
|                     List<string> urls = new List<string>();
 | |
|                     string res = APIGetHttpService.Http(url + "api/v1/device/channeltree");
 | |
|                     List<Dictionary<string, string>> resDic = new List<Dictionary<string, string>>();
 | |
|                     List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
 | |
|                     foreach (Dictionary<string, string> nvr in jsonNvr)
 | |
|                     {
 | |
|                         if (project != null && nvr["customName"].ToString() == project.ProjectName)
 | |
|                         {
 | |
|                             string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]);
 | |
|                             responeData.data = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras);
 | |
|                             return responeData;
 | |
|                         }
 | |
|                         else if (project == null)
 | |
|                         {
 | |
|                             string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]);
 | |
|                             resDic.AddRange(JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras));
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]);
 | |
|                             resDic.AddRange(JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras));
 | |
|                         }
 | |
|                     }
 | |
|                     responeData.data = resDic;
 | |
| 
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 responeData.code = 0;
 | |
|                 responeData.message = ex.Message;
 | |
|             }
 | |
| 
 | |
|             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 stmp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() + "";
 | |
|                 string jsonCamera = APIGetHttpService.Http(url +"api/v1/stream/start?serial=" + serial + "&code=" + code + "&_=" + stmp);
 | |
|                 responeData.data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonCamera);
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 responeData.code = 0;
 | |
|                 responeData.message = ex.Message;
 | |
|             }
 | |
| 
 | |
|             return responeData;
 | |
|         }
 | |
|     }
 | |
| }
 |