debug 後台同步 niagara 資料
This commit is contained in:
parent
b146283d13
commit
e3700b63b8
@ -820,11 +820,10 @@ namespace Backend.Controllers
|
|||||||
//更新device資料表 room_dbid 欄位
|
//更新device資料表 room_dbid 欄位
|
||||||
string sql = @"
|
string sql = @"
|
||||||
SET SQL_SAFE_UPDATES = 0;
|
SET SQL_SAFE_UPDATES = 0;
|
||||||
UPDATE
|
UPDATE device AS de,
|
||||||
device AS de,
|
|
||||||
(
|
(
|
||||||
select f.room_id, f.room_name from forge_room f
|
select f.room_id, f.room_name from forge_room f
|
||||||
join device d ON f.room_name = d.room_name
|
join device d ON f.room_name = d.room_name
|
||||||
) AS re
|
) AS re
|
||||||
SET de.room_dbid = re.room_id
|
SET de.room_dbid = re.room_id
|
||||||
WHERE de.room_name = re.room_name;";
|
WHERE de.room_name = re.room_name;";
|
||||||
|
@ -15,6 +15,8 @@ using Ubiety.Dns.Core;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Repository.Models.CodeBeautify;
|
||||||
|
using NPOI.SS.Formula.Functions;
|
||||||
|
|
||||||
namespace Backend.Services.Implement
|
namespace Backend.Services.Implement
|
||||||
{
|
{
|
||||||
@ -163,12 +165,11 @@ namespace Backend.Services.Implement
|
|||||||
XmlDocument xmlDoc = new XmlDocument();
|
XmlDocument xmlDoc = new XmlDocument();
|
||||||
xmlDoc.LoadXml(responseString);
|
xmlDoc.LoadXml(responseString);
|
||||||
|
|
||||||
string jsonText = JsonConvert.SerializeXmlNode(xmlDoc);
|
//ref https://stackoverflow.com/questions/642293/how-do-i-read-and-parse-an-xml-file-in-c
|
||||||
var data = Welcome.FromJson(jsonText);
|
foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes)
|
||||||
|
|
||||||
foreach (var item in data.Obj.Ref)
|
|
||||||
{
|
{
|
||||||
String API_Url2 = urlString + "/" + item.Name;
|
string stationName = node.Attributes["name"].InnerText; // WSP_Supervisor
|
||||||
|
String API_Url2 = urlString + "/" + stationName; // http://192.168.0.136:8081/obix/histories/WSP_Supervisor
|
||||||
|
|
||||||
HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
|
HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
|
||||||
Postrequest2.Method = "GET";
|
Postrequest2.Method = "GET";
|
||||||
@ -181,32 +182,117 @@ namespace Backend.Services.Implement
|
|||||||
XmlDocument xmlDoc2 = new XmlDocument();
|
XmlDocument xmlDoc2 = new XmlDocument();
|
||||||
xmlDoc2.LoadXml(responseString2);
|
xmlDoc2.LoadXml(responseString2);
|
||||||
|
|
||||||
string jsonText2 = JsonConvert.SerializeXmlNode(xmlDoc2);
|
foreach (XmlNode node2 in xmlDoc2.DocumentElement.ChildNodes)
|
||||||
var data2 = Welcome.FromJson(jsonText2);
|
|
||||||
|
|
||||||
foreach (var item2 in data2.Obj.Ref)
|
|
||||||
{
|
{
|
||||||
if (item2.Name.Split('_').Length == 9)
|
string tagName = node2.Attributes["name"].InnerText;
|
||||||
|
if (tagName.Split('_').Length == 9)
|
||||||
{
|
{
|
||||||
ImpNiaItem row = new ImpNiaItem();
|
ImpNiaItem row = new ImpNiaItem();
|
||||||
row.device_area_tag = item2.Name.Split('_')[0];
|
row.device_area_tag = tagName.Split('_')[0];
|
||||||
row.device_building_tag = item2.Name.Split('_')[1];
|
row.device_building_tag = tagName.Split('_')[1];
|
||||||
row.device_system_tag = item2.Name.Split('_')[2];
|
row.device_system_tag = tagName.Split('_')[2];
|
||||||
row.device_name_tag = item2.Name.Split('_')[3];
|
row.device_name_tag = tagName.Split('_')[3];
|
||||||
row.device_point_name = item2.Name.Split('_')[8];
|
row.device_point_name = tagName.Split('_')[8];
|
||||||
row.parent_path = item.Name;
|
row.parent_path = stationName;
|
||||||
|
|
||||||
//full_name 其實是點位名稱 point_name
|
//full_name 其實是點位名稱 point_name
|
||||||
row.full_name = conPoint.Where(x => x.name == item2.Name).Select(x => x.displayName).FirstOrDefault();
|
row.full_name = conPoint.Where(x => x.name == tagName).Select(x => x.displayName).FirstOrDefault();
|
||||||
|
|
||||||
result.Add(row);
|
result.Add(row);
|
||||||
|
|
||||||
|
} else if (tagName.Split('_').Length == 6)
|
||||||
|
{ //巨蛋 tag 5 段版本
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
//private static void getRefData(string urlString, string encoded, List<control_point> conPoint, List<ImpNiaItem> result, Welcome data ) //obixHistory data
|
||||||
|
//{
|
||||||
|
// foreach (var item in data.Obj.Ref)
|
||||||
|
// {
|
||||||
|
// //var item = data.Obj.Ref;
|
||||||
|
// String API_Url2 = urlString + "/" + item.Name;
|
||||||
|
|
||||||
|
// HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
|
||||||
|
// Postrequest2.Method = "GET";
|
||||||
|
// Postrequest2.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
|
// Postrequest2.PreAuthenticate = true;
|
||||||
|
|
||||||
|
// HttpWebResponse response2 = (HttpWebResponse)Postrequest2.GetResponse();
|
||||||
|
// var responseString2 = new StreamReader(response2.GetResponseStream()).ReadToEnd();
|
||||||
|
|
||||||
|
// XmlDocument xmlDoc2 = new XmlDocument();
|
||||||
|
// xmlDoc2.LoadXml(responseString2);
|
||||||
|
|
||||||
|
// string jsonText2 = JsonConvert.SerializeXmlNode(xmlDoc2);
|
||||||
|
// var data2 = Welcome.FromJson(jsonText2);
|
||||||
|
|
||||||
|
// foreach (var item2 in data2.Obj.Ref)
|
||||||
|
// {
|
||||||
|
// if (item2.Name.Split('_').Length == 9)
|
||||||
|
// {
|
||||||
|
// ImpNiaItem row = new ImpNiaItem();
|
||||||
|
// row.device_area_tag = item2.Name.Split('_')[0];
|
||||||
|
// row.device_building_tag = item2.Name.Split('_')[1];
|
||||||
|
// row.device_system_tag = item2.Name.Split('_')[2];
|
||||||
|
// row.device_name_tag = item2.Name.Split('_')[3];
|
||||||
|
// row.device_point_name = item2.Name.Split('_')[8];
|
||||||
|
// row.parent_path = item.Name;
|
||||||
|
|
||||||
|
// //full_name 其實是點位名稱 point_name
|
||||||
|
// row.full_name = conPoint.Where(x => x.name == item2.Name).Select(x => x.displayName).FirstOrDefault();
|
||||||
|
|
||||||
|
// result.Add(row);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
//private static void getRefData(string urlString, string encoded, List<control_point> conPoint, List<ImpNiaItem> result, Welcome4 data)
|
||||||
|
//{
|
||||||
|
// foreach (var item in data.Obj.Ref)
|
||||||
|
// {
|
||||||
|
// String API_Url2 = urlString + "/" + item.Name;
|
||||||
|
|
||||||
|
// HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2);
|
||||||
|
// Postrequest2.Method = "GET";
|
||||||
|
// Postrequest2.Headers.Add("Authorization", "Basic " + encoded);
|
||||||
|
// Postrequest2.PreAuthenticate = true;
|
||||||
|
|
||||||
|
// HttpWebResponse response2 = (HttpWebResponse)Postrequest2.GetResponse();
|
||||||
|
// var responseString2 = new StreamReader(response2.GetResponseStream()).ReadToEnd();
|
||||||
|
|
||||||
|
// XmlDocument xmlDoc2 = new XmlDocument();
|
||||||
|
// xmlDoc2.LoadXml(responseString2);
|
||||||
|
|
||||||
|
// string jsonText2 = JsonConvert.SerializeXmlNode(xmlDoc2);
|
||||||
|
// var data2 = Welcome.FromJson(jsonText2);
|
||||||
|
|
||||||
|
// foreach (var item2 in data2.Obj.Ref)
|
||||||
|
// {
|
||||||
|
// if (item2.Name.Split('_').Length == 9)
|
||||||
|
// {
|
||||||
|
// ImpNiaItem row = new ImpNiaItem();
|
||||||
|
// row.device_area_tag = item2.Name.Split('_')[0];
|
||||||
|
// row.device_building_tag = item2.Name.Split('_')[1];
|
||||||
|
// row.device_system_tag = item2.Name.Split('_')[2];
|
||||||
|
// row.device_name_tag = item2.Name.Split('_')[3];
|
||||||
|
// row.device_point_name = item2.Name.Split('_')[8];
|
||||||
|
// row.parent_path = item.Name;
|
||||||
|
|
||||||
|
// //full_name 其實是點位名稱 point_name
|
||||||
|
// row.full_name = conPoint.Where(x => x.name == item2.Name).Select(x => x.displayName).FirstOrDefault();
|
||||||
|
|
||||||
|
// result.Add(row);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
//public void getObix()
|
//public void getObix()
|
||||||
//{
|
//{
|
||||||
|
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 222 KiB |
167
Repository/Models/obixHistory.cs
Normal file
167
Repository/Models/obixHistory.cs
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
using Newtonsoft.Json.Converters;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Globalization;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Repository.Models.CodeBeautify
|
||||||
|
{
|
||||||
|
//public class obixHistory
|
||||||
|
//{
|
||||||
|
//}
|
||||||
|
public partial class obixHistory
|
||||||
|
{
|
||||||
|
[JsonProperty("obj")]
|
||||||
|
public Objs Obj { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Objs
|
||||||
|
{
|
||||||
|
[JsonProperty("ref")]
|
||||||
|
public Refs Ref { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_xmlns")]
|
||||||
|
public Uri Xmlns { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_xmlns:xsi")]
|
||||||
|
public Uri XmlnsXsi { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_href")]
|
||||||
|
public Uri Href { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_display")]
|
||||||
|
public string Display { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_icon")]
|
||||||
|
public string Icon { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_xsi:schemaLocation")]
|
||||||
|
public Uri XsiSchemaLocation { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Refs
|
||||||
|
{
|
||||||
|
[JsonProperty("_name")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_href")]
|
||||||
|
public string Href { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_display")]
|
||||||
|
public string Display { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_icon")]
|
||||||
|
public string Icon { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public partial class obixHistory
|
||||||
|
{
|
||||||
|
public static obixHistory FromJson(string json) => JsonConvert.DeserializeObject<obixHistory>(json, CodeBeautify.Converter.Settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Serialize
|
||||||
|
{
|
||||||
|
public static string ToJson(this obixHistory self) => JsonConvert.SerializeObject(self, CodeBeautify.Converter.Settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class Converter
|
||||||
|
{
|
||||||
|
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
|
||||||
|
DateParseHandling = DateParseHandling.None,
|
||||||
|
Converters =
|
||||||
|
{
|
||||||
|
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// <auto-generated />
|
||||||
|
//
|
||||||
|
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
|
||||||
|
//
|
||||||
|
// using CodeBeautify;
|
||||||
|
//
|
||||||
|
// var welcome4 = Welcome4.FromJson(jsonString);
|
||||||
|
|
||||||
|
//namespace CodeBeautify
|
||||||
|
//{
|
||||||
|
// using System;
|
||||||
|
// using System.Collections.Generic;
|
||||||
|
|
||||||
|
// using System.Globalization;
|
||||||
|
// using Newtonsoft.Json;
|
||||||
|
// using Newtonsoft.Json.Converters;
|
||||||
|
|
||||||
|
// public partial class Welcome4
|
||||||
|
// {
|
||||||
|
// [JsonProperty("obj")]
|
||||||
|
// public Obj Obj { get; set; }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public partial class Obj
|
||||||
|
// {
|
||||||
|
// [JsonProperty("ref")]
|
||||||
|
// public Ref Ref { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_xmlns")]
|
||||||
|
// public Uri Xmlns { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_xmlns:xsi")]
|
||||||
|
// public Uri XmlnsXsi { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_href")]
|
||||||
|
// public Uri Href { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_display")]
|
||||||
|
// public string Display { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_icon")]
|
||||||
|
// public string Icon { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_xsi:schemaLocation")]
|
||||||
|
// public Uri XsiSchemaLocation { get; set; }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public partial class Ref
|
||||||
|
// {
|
||||||
|
// [JsonProperty("_name")]
|
||||||
|
// public string Name { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_href")]
|
||||||
|
// public string Href { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_display")]
|
||||||
|
// public string Display { get; set; }
|
||||||
|
|
||||||
|
// [JsonProperty("_icon")]
|
||||||
|
// public string Icon { get; set; }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public partial class Welcome4
|
||||||
|
// {
|
||||||
|
// public static Welcome4 FromJson(string json) => JsonConvert.DeserializeObject<Welcome4>(json, CodeBeautify.Converter.Settings);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public static class Serialize
|
||||||
|
// {
|
||||||
|
// public static string ToJson(this Welcome4 self) => JsonConvert.SerializeObject(self, CodeBeautify.Converter.Settings);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// internal static class Converter
|
||||||
|
// {
|
||||||
|
// public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
|
||||||
|
// {
|
||||||
|
// MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
|
||||||
|
// DateParseHandling = DateParseHandling.None,
|
||||||
|
// Converters =
|
||||||
|
// {
|
||||||
|
// new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
|
||||||
|
// },
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
//}
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Converters;
|
using Newtonsoft.Json.Converters;
|
||||||
@ -19,6 +20,11 @@ namespace Repository.Models
|
|||||||
|
|
||||||
public partial class Obj
|
public partial class Obj
|
||||||
{
|
{
|
||||||
|
[JsonProperty("@href")]
|
||||||
|
public string? href { get; set; }
|
||||||
|
[JsonProperty("@icon")]
|
||||||
|
public string? icon { get; set; }
|
||||||
|
|
||||||
[JsonProperty("@display")]
|
[JsonProperty("@display")]
|
||||||
public string Display { get; set; }
|
public string Display { get; set; }
|
||||||
|
|
||||||
@ -36,6 +42,7 @@ namespace Repository.Models
|
|||||||
|
|
||||||
[JsonProperty("ref")]
|
[JsonProperty("ref")]
|
||||||
public Str[] Ref { get; set; }
|
public Str[] Ref { get; set; }
|
||||||
|
//public Ref Ref { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class Str
|
public partial class Str
|
||||||
@ -48,15 +55,25 @@ namespace Repository.Models
|
|||||||
|
|
||||||
[JsonProperty("@href")]
|
[JsonProperty("@href")]
|
||||||
public string Href { get; set; }
|
public string Href { get; set; }
|
||||||
|
[JsonProperty("@display")]
|
||||||
|
public string display { get; set; }
|
||||||
|
[JsonProperty("@_icon")]
|
||||||
|
public string _icon { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class Ref
|
public class Ref
|
||||||
{
|
{
|
||||||
[JsonProperty("@name")]
|
[JsonProperty("_name")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
[JsonProperty("@href")]
|
[JsonProperty("_href")]
|
||||||
public string Href { get; set; }
|
public string Href { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_display")]
|
||||||
|
public string Display { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("_icon")]
|
||||||
|
public string Icon { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class Xml
|
public partial class Xml
|
||||||
|
Loading…
Reference in New Issue
Block a user