using HH.WCS.Mobox3.pinggao.models;
using HH.WCS.Mobox3.pinggao;
using HH.WCS.Mobox3.pinggao.dispatch;
using HH.WCS.Mobox3.pinggao.util;
using HH.WCS.Mobox3.pinggao.wms;
using Newtonsoft.Json;
using Swashbuckle.Swagger;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Reflection;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.UI.WebControls;
using System.Xml;
using System.Xml.Linq;
using static HH.WCS.Mobox3.pinggao.models.SapRoot;
using static HH.WCS.Mobox3.pinggao.api.ApiModel;
using static HH.WCS.Mobox3.pinggao.dispatch.NDC;
using static HH.WCS.Mobox3.pinggao.wms.ExpressionHelper;
namespace HH.WCS.Mobox3.pinggao.api
{
public class TestController : System.Web.Http.ApiController
{
// ///
///// 测试接口
/////
/////
/////
//[HttpPost]
//public HttpResponseMessage ReceiveXmlDatas([FromBody] XElement xmlData)
//{
// if (xmlData == null)
// {
// LogHelper.Info("无数据:");
// return null;
// }
// XmlDocument xmlDoc = new XmlDocument();
// xmlDoc.LoadXml(xmlData.ToString());
// //将 XmlDocument 转换为 JSON 字符串
// string json1 = JsonConvert.SerializeXmlNode(xmlDoc);
// var data = JsonConvert.DeserializeObject(json1);
// // var json = JsonConvert.SerializeObject(new { id = 123, name = "jack" });
// var json = JsonConvert.SerializeObject(data.ROOT);
// string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
// var response = new HttpResponseMessage()
// {
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
// };
// return response;
//}
[HttpPost]
public HttpResponseMessage ReceiveXmlDatas([FromBody] XElement xmlData)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlData.ToString());
//将 XmlDocument 转换为 JSON 字符串
string json1 = JsonConvert.SerializeXmlNode(xmlDoc);
var data = JsonConvert.DeserializeObject(json1);
// var json = JsonConvert.SerializeObject(new { id = 123, name = "jack" });
var json = JsonConvert.SerializeObject(data.ROOT);
string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
var response = new HttpResponseMessage() {
Content = new StringContent(xml, Encoding.UTF8, "application/xml")
};
return response;
// 处理XML数据
// ...
}
public HttpResponseMessage Main()
{
string xmlData = @"
唯一标识过账日期过账人员工厂物料凭证编号物料凭证年度物料凭证中的项目物料号基本计量单位数量采购凭证号采购凭证项目编号库存地点检验批编号会计凭证输入日期会计凭证输入时间批次序列号";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlData);
XmlNodeList itemList = xmlDoc.SelectNodes("//ITME");
XmlNodeList headList = xmlDoc.SelectNodes("//HEAD");
var items = new List>();
foreach (XmlNode itemNode in itemList)
{
var itemDict = new Dictionary();
foreach (XmlNode childNode in itemNode.ChildNodes)
{
itemDict.Add(childNode.Name, childNode.InnerText);
}
items.Add(itemDict);
}
ROOT rOOT = new ROOT();
//rOOT.WLPZ = new WLPZ();
////多xml转类
//List ss = MapDictionariesToClasses(items);
//rOOT.WLPZ.ITME = ss;
string json = JsonConvert.SerializeObject(new { ITME = items });
string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
var response = new HttpResponseMessage()
{
Content = new StringContent(xml, Encoding.UTF8, "application/xml")
};
return response;
}
///
/// 单个
///
///
///
///
public static T MapDictionaryToClass(Dictionary dictionary) where T : new()
{
T obj = new T();
foreach (var prop in typeof(T).GetProperties())
{
if (dictionary.TryGetValue(prop.Name, out object value))
{
// 尝试将值转换为属性的类型并进行赋值
try
{
prop.SetValue(obj, value);
}
catch (Exception ex)
{
// 处理类型转换异常或其他异常
Console.WriteLine($"Error setting property {prop.Name}: {ex.Message}");
}
}
}
return obj;
}
///
///
///
///
///
///
public static List MapDictionariesToClasses(List> dictionaries) where T : new()
{
List list = new List();
foreach (var dict in dictionaries)
{
T obj = new T();
foreach (var prop in typeof(T).GetProperties())
{
if (dict.TryGetValue(prop.Name, out object value))
{
try
{
prop.SetValue(obj, value);
}
catch (Exception ex)
{
// Handle the exception according to your needs
Console.WriteLine($"Error setting property {prop.Name}: {ex.Message}");
}
}
}
list.Add(obj);
}
return list;
}
public SimpleResult NdcRecives(string From, string To)
{
SimpleResult result = new SimpleResult();
result.resultCode = 0;
result.resultMsg = "成功";
try
{
var db = new SqlHelper