Commit 3162cafb authored by nickchen's avatar nickchen 🎨

fix: 新增欄位使用者無預設選項問題

add:  editPostAction of TokenVaultController
parent 5a8a6513
......@@ -1994,6 +1994,7 @@ namespace backstage.Controllers
{
if (TokenVaultResponse.info.Count > 0)
{
TokenVaultResponse.info[0].merchant_id = merchantid;
return View(TokenVaultResponse.info[0]);
}
else
......@@ -2008,6 +2009,164 @@ namespace backstage.Controllers
return View();
}
[Authorize(Policy = "AdminOnly")]
[HttpPost("/TokenVault/Edit/{id}")]
public async Task<IActionResult> Edit(int id, TokenVault tokenVault)
{
string msg = string.Empty;
// 取得使用者的 "token" Claim 值
string token = User.FindFirstValue("token");
//get此部門的全部vault api
var url = _config["IP"] + "/v2/vault/get";
var httpMethod = HttpMethod.Post;
var parameters = new Dictionary<string, string>
{
{ "Merchant_id", tokenVault.merchant_id.ToString()},
};
var apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
var tokenVaultResponse = JsonConvert.DeserializeObject<TokenVaultResponse>(apiResult.Data.ToString());
if (tokenVaultResponse.info != null)
{
var existVault = tokenVaultResponse.info.Where(x => x.vault_id == id).FirstOrDefault();
if (existVault != null)
{
if (string.IsNullOrEmpty(tokenVault.name))
{
switch (_currentLanguage)
{
case "en":
msg = " can't be empty.";
break;
case "zh":
msg = "不得空白";
break;
default:
msg = "不得空白";
break;
}
ModelState.AddModelError("name", msg);
}
else
{
var nameRepeat = tokenVaultResponse.info.Where(x => x.vault_id != id && x.name == tokenVault.name).FirstOrDefault();
if(nameRepeat != null)
{
switch (_currentLanguage)
{
case "en":
msg = " can't be repeated.";
break;
case "zh":
msg = "不得重複";
break;
default:
msg = "不得重複";
break;
}
ModelState.AddModelError("name", msg);
}
}
if (string.IsNullOrEmpty(tokenVault.desc))
{
switch (_currentLanguage)
{
case "en":
msg = " can't be empty.";
break;
case "zh":
msg = "不得空白";
break;
default:
msg = "不得空白";
break;
}
ModelState.AddModelError("desc", msg);
}
if (!ModelState.IsValid)
{
return View(tokenVault);
}
//修改vault
existVault.name = tokenVault.name;
existVault.desc = tokenVault.desc;
existVault.merchant_id = tokenVault.merchant_id;
url = _config["IP"] + "/v2/vault";
var editDataJson = new
{
name = existVault.name,
desc = existVault.desc,
type = existVault.type,
enabled =existVault.enabled
};
parameters = new Dictionary<string, string>
{
{ "token", token },
{ "info", "INFO" },
{ "id", existVault.vault_id.ToString() },
{ "Merchant_id", existVault.merchant_id.ToString() },
{ "data", JsonConvert.SerializeObject(editDataJson)}
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
{
var response = JsonConvert.DeserializeObject<Response>(apiResult.Data.ToString());
if (response.r == 0)
{
switch (_currentLanguage)
{
case "en":
msg = "Edit success.";
break;
case "zh":
msg = "編輯成功";
break;
default:
msg = "編輯成功";
break;
}
TempData["IsSuccess"] = true;
TempData["msg"] = msg;
return RedirectToAction("List");
}
}
}
}
}
switch (_currentLanguage)
{
case "en":
msg = "Edit fail.";
break;
case "zh":
msg = "編輯失敗";
break;
default:
msg = "編輯失敗";
break;
}
TempData["IsSuccess"] = false;
TempData["msg"] = msg;
return RedirectToAction("List");
}
[Authorize(Policy = "AdminOnly")]
[HttpPost]
public async Task<IActionResult> CreateTokenVault(TokenVaultForCreate tokenVault)
......@@ -2093,7 +2252,6 @@ namespace backstage.Controllers
{
{ "token", token },
{ "data",JsonConvert.SerializeObject(tokenVault)}
};
apiResult = await _callApi.CallAPI(url, parameters, httpMethod);
if (apiResult.IsSuccess)
......
......@@ -133,7 +133,7 @@
<value>狀態</value>
</data>
<data name="merchant_id" xml:space="preserve">
<value>編號</value>
<value>部門編號</value>
</data>
<data name="Modify Token Vault" xml:space="preserve">
<value>修改Token Vault</value>
......
......@@ -23,14 +23,17 @@
<div class="card-body">
<h4 class="card-title">@Localizer["Modify Token Vault"]</h4>
<form class="forms-sample" method="post" asp-action="CreateDepartment" autocomplete="off">
<form class="forms-sample" method="post" asp-action="Edit" autocomplete="off">
<div id="errorMsg" asp-validation-summary="All" class="text-danger"></div>
<p class="form-title card-description">@Localizer["Basic"]</p>
<div class="row">
<div class="col-md-6 form-group required">
<div class="col-md-4 form-group required">
<label asp-for="merchant_id" class="col-form-label" for="">@Localizer["merchant_id"]</label>
<select id="selectDepartmentList" class="form-control" asp-items="ViewBag.DepartmentsList" asp-for="merchant_id">
</select>
<!--<select id="selectDepartmentList" class="form-control" asp-items="ViewBag.DepartmentsList" asp-for="merchant_id">
</select>-->
<input asp-for="merchant_id" type="text" class="form-control" disabled>
<input asp-for="merchant_id" type="text" class="form-control" hidden>
</div>
<div class="col-md-4 form-group required">
......@@ -59,12 +62,14 @@
<div class="col-md-4 form-group required">
<label asp-for="type" class="col-form-label" for="">@Localizer["type"]</label>
<input asp-for="type" type="text" class="form-control" id="" disabled>
<input asp-for="type" type="text" class="form-control" id="" hidden>
<span asp-validation-for="type" class="text-danger"></span>
</div>
<div class="col-md-4 form-group required">
<label asp-for="enabled" class="col-form-label" for="">@Localizer["enabled"]</label>
<input asp-for="enabled" type="text" class="form-control" id="" disabled>
<input asp-for="enabled" type="text" class="form-control" id="" hidden>
<span asp-validation-for="enabled" class="text-danger"></span>
</div>
</div>
......@@ -74,12 +79,14 @@
<div class="col-md-4 form-group required">
<label asp-for="tokenCount" class="col-form-label" for="">@Localizer["tokenCount"]</label>
<input asp-for="tokenCount" type="text" class="form-control" id="" disabled>
<input asp-for="tokenCount" type="text" class="form-control" id="" hidden>
</div>
<div class="col-md-4 form-group required">
<label asp-for="userCount" class="col-form-label" for="">@Localizer["userCount"]</label>
<input asp-for="userCount" type="text" class="form-control" id="" disabled>
<input asp-for="userCount" type="text" class="form-control" id="" hidden>
</div>
</div>
......
......@@ -180,6 +180,7 @@
<div class="form-group">
<div class="dropdown bootstrap-select selecter form-control ">
<select id="user_selectpicker" title="@Localizer["Please select user(Single option)."]" class="selectpicker selecter form-control selectpicker-tokenization" asp-items="ViewBag.users" tabindex="null">
<option disabled>@Localizer["Please select user(Single option)."]</option>
</select>
</div>
......@@ -191,6 +192,7 @@
<div class="form-group">
<div class="dropdown bootstrap-select show-tick selecter form-control ">
<select name="allow_masks" id="select_mask" multiple="" title="@Localizer["Please select mask(multiple options)."]" class="mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
<option disabled>@Localizer["Please select mask(multiple options)."]</option>
</select>
</div>
</div>
......@@ -201,6 +203,7 @@
<div class="form-group">
<div class="dropdown bootstrap-select selecter form-control ">
<select name="default_mask_id" id="default_mask" title="@Localizer["Please select default mask(Single option)."]" class=" default_mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
<option disabled>@Localizer["Please select default mask(Single option)."]</option>
</select>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment