using System; using System.Collections.Generic; using IRaCIS.Application.Interfaces; using IRaCIS.Application.ViewModels; using IRaCIS.Core.Application.Contracts.RequestAndResponse; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace IRaCIS.Api.Controllers { [Route("cro")] [ApiController, Authorize, ApiExplorerSettings(GroupName = "Institution")] public class CROController : ControllerBase { private readonly ICroService _croService; public CROController(ICroService croCompanyService) { _croService = croCompanyService; } /// <summary> 分页获取CRO列表 </summary> [HttpPost, Route("getCROPageList")] public IResponseOutput<PageOutput<CROCompanyDTO>> GetCROCompanyList(CROCompanyQueryDTO croCompanySearchModel) { return ResponseOutput.Ok(_croService.GetCroList(croCompanySearchModel)); } /// <summary> 获取所有CRO列表,可根据名称搜索[AUTH] </summary> [HttpPost, Route("getAllCROList")] public IResponseOutput<IEnumerable<CroSelectDTO>> GetCROCompanySearchList() { return ResponseOutput.Ok(_croService.GetCroSearchList()); } /// <summary> 添加CRO[AUTH] </summary> [HttpPost, Route("addOrUpdateCro")] public IResponseOutput AddCROCompany(CROCompanyDTO addCroCompanyViewModel) { var userId = User.FindFirst("id").Value; return _croService.AddOrUpdateCro(addCroCompanyViewModel, Guid.Parse(userId)); } /// <summary> 删除CRO </summary> [HttpDelete, Route("deleteCROCompany/{croCompanyId:guid}")] public IResponseOutput DeleteCROCompany(Guid croCompanyId) { return _croService.DeleteCro(croCompanyId); } } }