using System.Text; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; using Microsoft.Scripting.Utils; using SupplierManager.Common; using ViewModels; namespace SupplierManager.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class ConfigPYController : ControllerBase { [HttpPost()] [Authorize()] public async Task GetConfigString() { ReturnInfo r = new ReturnInfo(); try { string[] str = await System.IO.File.ReadAllLinesAsync("script\\webapi.py"); List ll = new List(); foreach (var item in str) { if (!string.IsNullOrWhiteSpace(item)) { string[] a = item.Split('='); VK v = new VK(); v.VarName = a[0]; v.VarValue = a[1]; ll.Add(v); } } r.isok = true; r.response = ll; } catch (Exception ex) { r.isok = false; r.message = ex.Message; } return r; } [HttpPost()] [Authorize()] public ReturnInfo RefreshConfig() { ReturnInfo info = new ReturnInfo(); info.isok = true; try { StaticData.GetWebAPIMethod(); info.message = "Sucess"; } catch (Exception ex) { info.isok = false; info.message = ex.Message; } return info; } public class VK { public string VarName { get; set; } public string VarValue { get; set; } } [HttpPost()] [Authorize()] public async Task SaveOrAddConfigString([FromBody] VK data) { ReturnInfo info = new ReturnInfo(); info.isok = true; try { var sss = System.IO.File.ReadAllLines("script\\webapi.py", Encoding.UTF8).ToList(); for (int i = 0; i < sss.Count; i++) { string item = sss[i]; string[] txtdata = item.Split('='); if (txtdata[0].Equals(data.VarName)) { txtdata[1] = data.VarValue; sss[i] = txtdata[0] + "=" + txtdata[1]; } } bool exists = sss.Any(A => A.StartsWith(data.VarName)); if (exists == false) { sss.AddRange(new string[] { data.VarName + "=" + data.VarValue }); } await System.IO.File.WriteAllLinesAsync("script\\webapi.py", sss, Encoding.UTF8); StaticData.GetWebAPIMethod(); info.message = "Sucess"; } catch (Exception ex) { info.isok = false; info.message = ex.Message; } return info; } [HttpPost()] [Authorize()] public ReturnInfo GetSingleValue([FromBody] Dictionary dic) { ReturnInfo info = new ReturnInfo(); info.isok = true; try { string VarValue = dic["VarName"]; if (!string.IsNullOrEmpty(VarValue)) { var QQQ = StaticData.scope1.GetVariable(VarValue); string str = System.Text.Json.JsonSerializer.Serialize(QQQ); info.response = str; } } catch (Exception ex) { info.isok = false; info.message = ex.Message; } return info; } } }