using BITKit; using IDIS; using IDIS.Models; using IDIS.Services; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace IDIS_Server_SIM.Controllers; [ApiController] public class IDIS_ServiceController:Controller { private readonly IDIS_Service _service; public IDIS_ServiceController(IDIS_Service service) { _service = service; } /// /// 获取服务器信息 /// /// 主机名称 [HttpGet] [Route("info")] public IActionResult Info() { return Ok(new IDIS_Response(Environment.MachineName)); } /// /// 一次解析所有标识 /// /// 所有标识的数组 [HttpGet] [Route("/identityv2/data/detail/all")] public async Task QueryAll() { try { var result = await _service.ToArrayAsync(); var response = new IDIS_Response(result); var json = JsonConvert.SerializeObject(response); //return Ok(JsonConvert.SerializeObject(response)); return new ContentResult() { Content = json, ContentType = "application/json", StatusCode = 200 }; } catch (Exception e) { return BadRequest(new IDIS_Response(e.Message,false) { Status = 2 }); } } /// /// 解析表示 /// /// 标识码 /// [HttpGet] [Route("/identityv2/data/detail")] public async Task Query(string handle) { try { var result = await _service.QueryAsync(handle); var response = new IDIS_Response(result); var json = JsonConvert.SerializeObject(response); //return Ok(JsonConvert.SerializeObject(response)); return new ContentResult() { Content = json, ContentType = "application/json", StatusCode = 200 }; } catch (Exception e) { return BadRequest(new IDIS_Response(e.Message,false) { Status = 2 }); } } /// /// 查询标识是否存在 /// /// 标识码 /// [HttpGet] [Route("isExist")] public async Task IsExist(string code) { return Ok(new IDIS_Response(await _service.IsExistAsync(code))); } /// /// 注册标识 /// /// [HttpPost] [Route("/identityv2/data")] public async Task Register() { try { using var reader = new StreamReader(Request.Body); var json = await reader.ReadToEndAsync(); var data = JsonConvert.DeserializeObject(json)!; await _service.RegisterAsync(data.Handle, data.TemplateVersion, data.Value); return Ok(new IDIS_Response()); } catch (Exception e) { return BadRequest(new IDIS_Response(e.Message,false) { Status = 2 }); } } /// /// 更新标识(目前不可用) /// /// [HttpGet] [Route("update")] public string Update() { return "err:0"; } /// /// 删除标识 /// /// 标识码 /// [HttpGet] [Route("delete")] public async Task Delete (string code) { await _service.DeleteAsync(code); return true; } }