private VideoStorageInfo TransferModel(CCTVHierarchyNode node, Dictionary <string, VideoStorageInfo> sInfos) { if (node != null) { VideoStorageInfo vsi = new VideoStorageInfo() { VideoId = node.Id, VideoName = node.Name, Type = node.Type.ToString(), StorageOn = false }; sInfos[vsi.VideoId] = vsi; if (node.Children != null) { List <VideoStorageInfo> children = new List <VideoStorageInfo>(); for (int i = 0; i < node.Children.Length; i++) { VideoStorageInfo child = TransferModel(node.Children[i], sInfos); if (child != null) { children.Add(child); } } vsi.Children = children.ToArray(); } return(vsi); } return(null); }
private static void ShowResult(VideoStorageInfo vsi) { Console.WriteLine(vsi.VideoId + "_" + vsi.StorageOn + "_" + vsi.Type + "_" + vsi.VideoName); if (vsi.Children != null) { foreach (VideoStorageInfo child in vsi.Children) { ShowResult(child); } } }
static void Main(string[] args) { HttpClient client = new HttpClient(); string baseAddress = "http://127.0.0.1:12321/api/"; var response = client.GetAsync(baseAddress + "nodes").Result; response.EnsureSuccessStatusCode(); VideoStorageInfo vsi = response.Content.ReadAsAsync <VideoStorageInfo>().Result; ShowResult(vsi); while (true) { string str = Console.ReadLine(); if (str.Equals("exit", StringComparison.OrdinalIgnoreCase)) { break; } string request = baseAddress + $"?videoid={str};flag=true"; client.PostAsJsonAsync(request, ""); } }
public HttpResponseMessage GetStorageInfos() { Console.WriteLine("Request:GetStorageInfos:" + DateTime.Now); try { CCTVHierarchyNode root = NodesManager.Instance.GetHierarchyRoot(); IVideoInfo[] videos = StorageManager.Instance.GetAllStorageVideos(); Dictionary <string, VideoStorageInfo> dictInfos = new Dictionary <string, VideoStorageInfo>(); VideoStorageInfo sInfo = TransferModel(root, dictInfos); UpdateStorageFlag(dictInfos, videos); var response = Request.CreateResponse(sInfo); return(response); } catch (Exception e) { Console.WriteLine("Error:GetStorageInfos:" + DateTime.Now + ":" + e.Message); return(Request.CreateErrorResponse(HttpStatusCode.NotFound, e)); } }