public async Task <ActionResult> EditDevice(AsrsPfdModel model) { var response = JsonConvert.DeserializeObject <JObject>(await HttpHelper.POSTRequest("http://localhost:32000/sams/device/edit", JsonConvert.SerializeObject(model))); if (response != null && response["isSuccess"].Value <bool>()) { return(RedirectToAction("Index", "AsrsPfd")); } else { return(await EditDevice(alert : response["Status"].Value <string>())); } }
/// <summary> /// 新增/修改 裝置 /// </summary> /// <returns></returns> public async Task <ActionResult> EditDevice(string device = null, string alert = null) { ViewBag.Title = (device is null) ? "新增裝置" : $"編輯 裝置 [{device}]"; if (alert != null) { TempData["ALERT"] = alert; } AsrsPfdModel model = new AsrsPfdModel(); //裝置種類 var response = JsonConvert.DeserializeObject <JObject>(await HttpHelper.GETRequest("http://localhost:32000/sams/device/type")); if (response != null && response["isSuccess"].Value <bool>()) { var tmp = response["Data"].Value <JArray>(); model.DeviceTypeList = tmp.Select(item => { return(new SelectListItem() { Text = item["Name"].Value <string>(), Value = item["Value"].Value <string>() }); }).ToList(); } else { model.DeviceTypeList = new List <SelectListItem>(); } //物流方向 response = JsonConvert.DeserializeObject <JObject>(await HttpHelper.GETRequest("http://localhost:32000/sams/device/direction")); if (response != null && response["isSuccess"].Value <bool>()) { var tmp = response["Data"].Value <JArray>(); model.DeviceDirectionList = tmp.Select(item => { return(new SelectListItem() { Text = item["Name"].Value <string>(), Value = item["Value"].Value <string>() }); }).ToList(); } else { model.DeviceDirectionList = new List <SelectListItem>(); } //目前裝置 if (device != null) { response = JsonConvert.DeserializeObject <JObject>(await HttpHelper.GETRequest($"http://localhost:32000/sams/device/get/{device}")); if (response != null && response["isSuccess"].Value <bool>()) { PfdStructure.Device tmpDevice = response["Data"].ToObject <PfdStructure.Device>(); model.OrgDeviceId = device; model.DeviceId = tmpDevice.Id; model.DeviceName = tmpDevice.Name; model.DeviceType = tmpDevice.Type; model.DeviceActive = tmpDevice.Enable; model.PositionX = tmpDevice.PositionX; model.PositionY = tmpDevice.PositionY; model.DeiviceConnectList = tmpDevice.ConnectItems; } } //裝置清單 response = JsonConvert.DeserializeObject <JObject>(await HttpHelper.GETRequest("http://localhost:32000/sams/device/list")); if (response != null && response["isSuccess"].Value <bool>()) { model.DeiviceList = response["Data"].ToObject <List <PfdStructure.ConnectItem> >(); } //校正連接 if (model.DeiviceList != null) { //移除自己 if (device != null) { var self = model.DeiviceList.Where(d => d.Id.Equals(device))?.FirstOrDefault(); model.DeiviceList.Remove(self); } // model.DeiviceConnectList?.ForEach(c => { var conn = model.DeiviceList.Where(d => d.Id.Equals(c.Id))?.FirstOrDefault(); if (conn != null) { conn.isConnect = c.isConnect; conn.Direction = c.Direction; } }); } return(View(model)); }