You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

546 lines
22 KiB

3 weeks ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using NFine.Code;
  9. using NFine.Repository;
  10. using System.Data.Common;
  11. using NFine.Domain._03_Entity.SRM;
  12. using ICS.Application.Entity;
  13. using Newtonsoft.Json;
  14. using System.Configuration;
  15. using System.Data.SqlClient;
  16. using ICS.Data;
  17. using Newtonsoft.Json.Linq;
  18. using NFine.Domain._03_Entity.WMS;
  19. using System.Net;
  20. using System.IO;
  21. using NFine.Application.SystemManage;
  22. using NFine.Application.Entity;
  23. namespace NFine.Application.DHAY
  24. {
  25. public class MaterialsDeliveredRTMApp : RepositoryFactory<ICSVendor>
  26. {
  27. public static DataTable MDInvmes = new DataTable();
  28. DataActionApp actionapp = new DataActionApp();
  29. public DataTable GetICSMOApplyNeg(string MenuID, ref Pagination jqgridparam)
  30. {
  31. string DataActionsql = actionapp.DataActionSqlGet(MenuID);
  32. DataTable dt = new DataTable();
  33. List<DbParameter> parameter = new List<DbParameter>();
  34. string sql = @" select a.ID,a.ApplyNegCode,a.WHCode,b.WarehouseName,a.Status,a.Type,a.Memo,d.CreatePerson AS MOCreater
  35. ,g.F_RealName CreatePerson,a.CreateDateTime,a.MUSER,a.MUSERName
  36. ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  37. a.EATTRIBUTE9,a.EATTRIBUTE10,c.F_RealName AS ApproveBy
  38. from ICSMOApplyNeg a
  39. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  40. LEFT JOIN Sys_SRM_User c ON c.F_Account=a.EATTRIBUTE1
  41. LEFT JOIN (select distinct f.CreatePerson,d.ApplyNegCode,d.WorkPoint from ICSMOApplyNegDetail d
  42. left join ICSMOIssue e on e.IssueDetailID=d.SourceDetailID and e.WorkPoint=d.WorkPoint
  43. left join ICSMO f on f.MOCode=e.SourceCode and f.WorkPoint=e.WorkPoint) d
  44. on d.ApplyNegCode=a.ApplyNegCode and d.WorkPoint=a.WorkPoint
  45. LEFT JOIN Sys_SRM_User g ON g.F_Account=a.CreatePerson
  46. where a.Type='3'";
  47. sql = string.Format(sql);
  48. if (DataActionsql != "")
  49. {
  50. sql += " " + DataActionsql;
  51. }
  52. DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  53. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  54. }
  55. public DataTable GetICSMOApplyNegDetail(string ApplyNegCode, ref Pagination jqgridparam)
  56. {
  57. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  58. DataTable dt = new DataTable();
  59. //var queryParam = queryJson.ToJObject();
  60. List<DbParameter> parameter = new List<DbParameter>();
  61. string sql = @"select a.ID
  62. ,a.ApplyNegCode
  63. ,a.Sequence
  64. ,a.SourceDetailID
  65. ,a.InvCode
  66. ,a.Quantity
  67. ,a.Amount
  68. ,a.IssueNegQuantity
  69. ,a.ExtensionID
  70. ,a.MUSER
  71. ,a.MUSERName
  72. ,a.MTIME
  73. ,f.Colspan
  74. ,f.ProjectCode
  75. ,f.BatchCode
  76. ,f.Version
  77. ,f.Brand
  78. ,f.cFree1
  79. ,f.cFree2
  80. ,f.cFree3
  81. ,f.cFree4
  82. ,f.cFree5
  83. ,f.cFree6
  84. ,f.cFree7
  85. ,f.cFree8
  86. ,f.cFree9
  87. ,f.cFree10
  88. ,a.EATTRIBUTE1
  89. ,a.EATTRIBUTE2
  90. ,a.EATTRIBUTE3
  91. ,a.EATTRIBUTE4
  92. ,a.EATTRIBUTE5
  93. ,a.EATTRIBUTE6
  94. ,a.EATTRIBUTE7
  95. ,a.EATTRIBUTE8
  96. ,a.EATTRIBUTE9
  97. ,a.EATTRIBUTE10
  98. ,b.SourceCode
  99. ,c.CreatePerson AS MOCreater
  100. from ICSMOApplyNegDetail a
  101. LEFT JOIN ICSMOIssue b ON a.SourceDetailID=issueDetailID AND a.WorkPoint=b.WorkPoint
  102. LEFT JOIN ICSMO c ON c.MOCode=b.SourceCode AND c.WorkPoint=b.WorkPoint
  103. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  104. WHERE a.ApplyNegCode='" + ApplyNegCode + "' ";
  105. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  106. }
  107. public string DeleteICSMOApplyNeg(string keyValue)
  108. {
  109. //站点信息
  110. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  111. string msg = "";
  112. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  113. string sql = string.Empty;
  114. string sqlSeach = string.Format(@"select a.LotNo from dbo.ICSInventoryLotDetail a
  115. inner join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Type='13'
  116. where a.TransCode in ({0})", keyValue.TrimEnd(','));
  117. DataTable dt = SqlHelper.GetDataTableBySql(sqlSeach);
  118. if (dt.Rows.Count > 0)
  119. {
  120. msg = "该退料单已生成条码,请先删除条码!";
  121. return msg;
  122. }
  123. sql += string.Format(@"DELETE FROM dbo.ICSMOApplyNeg WHERE ApplyNegCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  124. sql += string.Format(@"DELETE FROM dbo.ICSMOApplyNegDetail WHERE ApplyNegCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  125. try
  126. {
  127. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  128. {
  129. }
  130. }
  131. catch (Exception ex)
  132. {
  133. throw new Exception(ex.Message);
  134. }
  135. return msg;
  136. }
  137. public DataTable GetICSReturnTemporary(string rfqno)
  138. {
  139. string sql = @"SELECT
  140. a.ApplyNegCode,
  141. a.InvCode,
  142. a.Quantity,
  143. a.Amount,
  144. a.SourceDetailID as ZJID,
  145. b.InvName,
  146. b.InvStd,
  147. b.InvUnit,
  148. a.IssueNegQuantity,
  149. a.ExtensionID,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  150. FROM
  151. ICSMOApplyNegDetail a
  152. LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint
  153. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  154. where a.ApplyNegCode='" + rfqno + "'";
  155. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  156. DataTable dtCloned = table.Clone();
  157. foreach (DataColumn col in dtCloned.Columns)
  158. {
  159. col.DataType = typeof(string);
  160. }
  161. foreach (DataRow row in table.Rows)
  162. {
  163. DataRow newrow = dtCloned.NewRow();
  164. foreach (DataColumn column in dtCloned.Columns)
  165. {
  166. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  167. }
  168. dtCloned.Rows.Add(newrow);
  169. }
  170. if (MDInvmes.Rows.Count > 0)
  171. {
  172. dtCloned.Merge(MDInvmes, false);
  173. }
  174. return dtCloned;
  175. }
  176. public void ClearTemp()
  177. {
  178. MDInvmes.Rows.Clear();
  179. }
  180. public DataTable GetINV(string invcode, string SourceCode, string SourceSequence, string MenuID, ref Pagination jqgridparam)
  181. {
  182. string DataActionsql = actionapp.DataActionSqlGetSecondery(MenuID);
  183. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  184. List<DbParameter> parameter = new List<DbParameter>();
  185. DataTable table = new DataTable();
  186. string wherestr = "";
  187. if (!string.IsNullOrEmpty(invcode))
  188. {
  189. wherestr += " and a.InvCode like '%" + invcode + "%'";
  190. }
  191. if (!string.IsNullOrEmpty(SourceCode))
  192. {
  193. wherestr += " and a.SourceCode like '%" + SourceCode + "%'";
  194. }
  195. if (!string.IsNullOrEmpty(SourceSequence))
  196. {
  197. wherestr += " and a.SourceSequence like '%" + SourceSequence + "%'";
  198. }
  199. string sql = @"SELECT DISTINCT a.IssueDetailID as ZJID,a.IssueCode,a.Sequence as MuHang,a.SourceCode,a.SourceSequence,ISNULL(g.DepCode,'') AS DepCode, a.InvCode,a.Quantity,a.Amount,b.InvName,b.InvStd,b.InvUnit,a.IssueQuantity as IssueNegQuantity,a.ExtensionID
  200. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,g.CreatePerson
  201. FROM ICSMOIssue a left JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint
  202. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  203. left join ICSMO g on g.MOCode=a.SourceCode and g.WorkPoint=a.WorkPoint
  204. where a.IssueQuantity>0 and g.ERPStatus!='3' and isnull(a.EATTRIBUTE10,'')!='' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
  205. sql += " " + DataActionsql;
  206. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  207. }
  208. public void AddMOApplyNegTemp(string json)
  209. {
  210. var data = json.ToJObject();
  211. if (MDInvmes.Columns.Count <= 0)
  212. {
  213. MDInvmes.Columns.Add("ZJID", typeof(string));
  214. MDInvmes.Columns.Add("InvCode", typeof(string));
  215. MDInvmes.Columns.Add("INVNAME", typeof(string));
  216. MDInvmes.Columns.Add("InvStd", typeof(string));
  217. MDInvmes.Columns.Add("InvUnit", typeof(string));
  218. MDInvmes.Columns.Add("Quantity", typeof(string));
  219. MDInvmes.Columns.Add("IssueNegQuantity", typeof(string));
  220. MDInvmes.Columns.Add("ExtensionID", typeof(string));
  221. MDInvmes.Columns.Add("Amount", typeof(string));
  222. MDInvmes.Columns.Add("ID", typeof(string));
  223. }
  224. string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  225. DataRow newrow = MDInvmes.NewRow();
  226. newrow["ZJID"] = data["ZJID"];
  227. newrow["InvName"] = data["InvName"];
  228. newrow["InvCode"] = data["InvCode"];
  229. newrow["InvStd"] = data["InvStd"];
  230. newrow["InvUnit"] = data["InvUnit"];
  231. newrow["Amount"] = data["Amount"];
  232. newrow["IssueNegQuantity"] = data["IssueNegQuantity"];
  233. newrow["ExtensionID"] = data["ExtensionID"];
  234. newrow["Quantity"] = "";
  235. newrow["ID"] = data["ID"];
  236. MDInvmes.Rows.Add(newrow);
  237. }
  238. public void UpdateMOApplyNegTemp(string json)
  239. {
  240. var data = json.ToJObject();
  241. string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  242. var info = MDInvmes.Select(string.Format("TLZID='{0}'", data["TLZID"]));
  243. if (info != null && info.Length > 0)
  244. {
  245. info[0]["ZJID"] = data["ZJID"];
  246. info[0]["InvName"] = data["InvName"];
  247. info[0]["InvCode"] = data["InvCode"];
  248. info[0]["InvStd"] = data["InvStd"];
  249. info[0]["InvUnit"] = data["InvUnit"];
  250. info[0]["Amount"] = data["Amount"];
  251. info[0]["IssueNegQuantity"] = data["IssueNegQuantity"];
  252. info[0]["ExtensionID"] = data["ExtensionID"];
  253. info[0]["Quantity"] = 0;
  254. }
  255. else
  256. {
  257. DataRow newrow = MDInvmes.NewRow();
  258. newrow["ZJID"] = data["ZJID"];
  259. newrow["InvName"] = data["InvName"];
  260. newrow["InvCode"] = data["InvCode"];
  261. newrow["InvStd"] = data["InvStd"];
  262. newrow["InvUnit"] = data["InvUnit"];
  263. newrow["Amount"] = data["Amount"];
  264. newrow["IssueNegQuantity"] = data["IssueNegQuantity"];
  265. newrow["ExtensionID"] = data["ExtensionID"];
  266. newrow["Quantity"] = 0;
  267. newrow["ID"] = data["ID"];
  268. newrow["TLZID"] = data["TLZID"];
  269. MDInvmes.Rows.Add(newrow);
  270. }
  271. }
  272. public string SaveICSMOApplyNeg(string ICSASN)
  273. {
  274. string msg = "";
  275. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  276. string sourceDetailID = string.Empty;
  277. //判断工单是否同一个人创建的,不是同一个创建人的工单不允许做在同一张退货单
  278. List<ICSMOApplyNeg> model = JsonConvert.DeserializeObject<List<ICSMOApplyNeg>>(ICSASN.ToString());
  279. foreach (ICSMOApplyNeg moa in model)
  280. {
  281. foreach (ICSMOApplyNegDetail moaD in moa.Detail)
  282. {
  283. sourceDetailID += moaD.SourceDetailID + ",";
  284. }
  285. }
  286. //查询工单行是否同一人创建
  287. string sqlSeach = string.Format(@"select distinct f.CreatePerson
  288. FROM ICSMOIssue e
  289. left join ICSMO f on f.MOCode = e.SourceCode and f.WorkPoint = e.WorkPoint
  290. WHERE e.IssueDetailID in('{0}') and e.WorkPoint='{1}'", sourceDetailID.TrimEnd(',').Replace(",", "','"), WorkPoint);
  291. DataTable dt = SqlHelper.GetDataTableBySql(sqlSeach);
  292. if (dt.Rows.Count > 1)
  293. {
  294. msg = "选择的工单行非同一人创建,请重新选择!";
  295. return msg;
  296. }
  297. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "MOIssueDocNegativeApply/Create";
  298. string result = HttpPost(APIURL, ICSASN);
  299. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  300. string MessAge = Obj["Message"].ToString();
  301. string Success = Obj["Success"].ToString();
  302. if (Success.ToUpper() == "FALSE")
  303. {
  304. msg = MessAge;
  305. }
  306. return msg;
  307. }
  308. public DataTable GetICSMOApplyNegDetailTemp(string ApplyNegCode)
  309. {
  310. string sql = @"SELECT
  311. a.ID,
  312. a.ID as TLZID,
  313. a.ApplyNegCode,
  314. a.InvCode,
  315. a.Quantity,
  316. a.Amount,
  317. a.SourceDetailID as ZJID,
  318. b.InvName,
  319. b.InvStd,
  320. b.InvUnit,
  321. ISNULL(l.Quantity, 0) as Quantitys,
  322. ISNULL(l.Amount, 0) as Amounts,
  323. a.IssueNegQuantity,
  324. a.ExtensionID,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  325. FROM
  326. ICSMOApplyNegDetail a
  327. LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint
  328. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  329. left join ICSMOIssue l ON l.InvCode=a.InvCode AND l.WorkPoint=a.WorkPoint AND l.ExtensionID=a.ExtensionID AND l.IssueDetailID=a.SourceDetailID
  330. where a.ApplyNegCode='" + ApplyNegCode + "'";
  331. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  332. if (MDInvmes == null || MDInvmes.Columns.Count <= 0)
  333. MDInvmes = table.Clone();
  334. DataTable dtCloned = table.Clone();
  335. foreach (DataColumn col in dtCloned.Columns)
  336. {
  337. col.DataType = typeof(string);
  338. }
  339. foreach (DataRow row in table.Rows)
  340. {
  341. DataRow newrow = dtCloned.NewRow();
  342. foreach (DataColumn column in dtCloned.Columns)
  343. {
  344. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  345. }
  346. dtCloned.Rows.Add(newrow);
  347. }
  348. if (MDInvmes.Rows.Count > 0)
  349. {
  350. //dtCloned.Merge(Invmes, false);
  351. foreach (DataRow data in MDInvmes.Rows)
  352. {
  353. var info = dtCloned.Select(string.Format("TLZID='{0}'", data["TLZID"]));
  354. if (info != null && info.Length > 0)
  355. {
  356. info[0]["ZJID"] = data["ZJID"];
  357. info[0]["InvName"] = data["InvName"];
  358. info[0]["InvCode"] = data["InvCode"];
  359. info[0]["InvStd"] = data["InvStd"];
  360. info[0]["InvUnit"] = data["InvUnit"];
  361. info[0]["Amount"] = data["Amount"];
  362. info[0]["IssueNegQuantity"] = data["IssueNegQuantity"];
  363. info[0]["ExtensionID"] = data["ExtensionID"];
  364. info[0]["Quantity"] = 0;
  365. }
  366. else
  367. {
  368. DataRow newrow = dtCloned.NewRow();
  369. newrow["ZJID"] = data["ZJID"];
  370. newrow["InvName"] = data["InvName"];
  371. newrow["InvCode"] = data["InvCode"];
  372. newrow["InvStd"] = data["InvStd"];
  373. newrow["InvUnit"] = data["InvUnit"];
  374. newrow["Amount"] = data["Amount"];
  375. newrow["Quantity"] = 0;
  376. newrow["ID"] = data["ID"];
  377. newrow["TLZID"] = data["TLZID"];
  378. newrow["IssueNegQuantity"] = data["IssueNegQuantity"];
  379. newrow["ExtensionID"] = data["ExtensionID"];
  380. dtCloned.Rows.Add(newrow);
  381. }
  382. }
  383. }
  384. return dtCloned;
  385. }
  386. public string UpdateICSMOApplyNeg(string ICSASN)
  387. {
  388. string msg = "";
  389. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "MOIssueDocNegativeApply/Update";
  390. string result = HttpPost(APIURL, ICSASN);
  391. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  392. string MessAge = Obj["Message"].ToString();
  393. string Success = Obj["Success"].ToString();
  394. if (Success.ToUpper() == "FALSE")
  395. {
  396. msg = MessAge;
  397. }
  398. return msg;
  399. }
  400. public DataTable StatementExportAll(string MenuID)
  401. {
  402. string DataActionsql = actionapp.DataActionSqlGet(MenuID);
  403. DataTable dt = new DataTable();
  404. List<DbParameter> parameter = new List<DbParameter>();
  405. string sql = @" SELECT
  406. a.ApplyNegCode '退',
  407. d.Sequence '退',
  408. f.CreatePerson '',
  409. a.WHCode '',
  410. b.WarehouseName '',
  411. CASE
  412. WHEN a.Status= '1' THEN
  413. ''
  414. WHEN a.Status= '1' THEN
  415. '' ELSE ''
  416. END AS '',
  417. CASE
  418. WHEN a.Type= '1' THEN
  419. '退'
  420. WHEN a.Type= '2' THEN
  421. '退' ELSE '退'
  422. END AS '',
  423. a.Memo '',
  424. a.CreatePerson '',
  425. a.CreateDateTime '',
  426. a.EATTRIBUTE1 '',
  427. a.EATTRIBUTE2 '',
  428. c.F_RealName AS '',
  429. e.SourceCode '',
  430. d.SourceDetailID 'ID',
  431. d.InvCode '',
  432. d.Quantity '',
  433. d.Amount '',
  434. d.IssueNegQuantity '退',
  435. d.MUSERName '',
  436. d.MTIME '',
  437. g.BatchCode '',
  438. d.EATTRIBUTE1 '1',
  439. h.EATTRIBUTE3 ''
  440. FROM
  441. ICSMOApplyNeg a
  442. LEFT JOIN ICSWarehouse b ON a.WHCode= b.WarehouseCode
  443. AND a.WorkPoint= b.WorkPoint
  444. LEFT JOIN Sys_SRM_User c ON c.F_Account= a.EATTRIBUTE1
  445. LEFT JOIN ICSMOApplyNegDetail d ON d.ApplyNegCode= a.ApplyNegCode
  446. AND d.WorkPoint= a.WorkPoint
  447. LEFT JOIN ICSMOIssue e ON e.IssueDetailID= d.SourceDetailID
  448. AND e.WorkPoint= d.WorkPoint
  449. LEFT JOIN ICSMO f ON f.MOCode= e.SourceCode
  450. AND f.WorkPoint= e.WorkPoint
  451. LEFT JOIN ICSExtension g ON d.ExtensionID= g.ID
  452. AND d.WorkPoint= g.WorkPoint
  453. LEFT JOIN ICSInventory h ON d.InvCode= h.InvCode
  454. AND d.WorkPoint= h.WorkPoint
  455. WHERE
  456. a.Type= '3' ";
  457. sql = string.Format(sql);
  458. if (DataActionsql != "")
  459. {
  460. sql += " " + DataActionsql;
  461. }
  462. sql += " order by a.ApplyNegCode desc,d.Sequence ";
  463. return SqlHelper.CmdExecuteDataTable(sql.ToString());
  464. }
  465. public static string HttpPost(string url, string body)
  466. {
  467. try
  468. {
  469. Encoding encoding = Encoding.UTF8;
  470. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  471. request.Method = "POST";
  472. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  473. request.ContentType = "application/json; charset=utf-8";
  474. byte[] buffer = encoding.GetBytes(body);
  475. request.ContentLength = buffer.Length;
  476. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  477. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  478. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  479. {
  480. return reader.ReadToEnd();
  481. }
  482. }
  483. catch (WebException ex)
  484. {
  485. throw new Exception(ex.Message);
  486. }
  487. }
  488. }
  489. }