using DotNetCore.CAP; using MapsterMapper; using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Sharing.Notifications.Knowledge; using Sharing.Province.Dtos; using Sharing.Province.Dtos.HuiJu.Send; using Sharing.Province.Dtos.XieTong.Knowledge; using Sharing.Province.Dtos.XieTong.Send; using Sharing.Province.XieTong.Knowledge; using Sharing.WebCore; namespace Sharing.Province.Controllers { public class ProvinceController : BaseController { private readonly IChannelConfigurationManager _channelConfigurationManager; private readonly PusherProvider _pusherProvider; private readonly ICapPublisher _capPublisher; private readonly IMapper _mapper; private readonly IMediator _mediator; private readonly IGetKnowledgeInfoSendRepository _getKnowledgeInfoSendRepository; public ProvinceController(IChannelConfigurationManager channelConfigurationManager, PusherProvider pusherProvider, ICapPublisher capPublisher, IMapper mapper, IMediator mediator, IGetKnowledgeInfoSendRepository getKnowledgeInfoSendRepository) { _channelConfigurationManager = channelConfigurationManager; _pusherProvider = pusherProvider; _capPublisher = capPublisher; _mapper = mapper; _mediator = mediator; _getKnowledgeInfoSendRepository = getKnowledgeInfoSendRepository; } [HttpGet("test")] public async Task Test() { var pusher = _pusherProvider.CreatePusher(_channelConfigurationManager); await pusher.PushOrderCreatedAsync(new SubmitCaseInfoRequest(), HttpContext.RequestAborted); var a = _channelConfigurationManager.GetConfigurationProvince().HuiJu; Reponse.Success(); Reponse.Failed(""); return a; } /// /// 测试推送 /// /// /// [HttpPost("getcaseresultreceive")] [AllowAnonymous] public async Task GetCaseResultReceive([FromBody] KnowledgeInfoSendInfo dto) { var data = _mapper.Map(dto); //将上报信息写入本地库 var id = await _getKnowledgeInfoSendRepository.AddAsync(data); data.Id = id; //信息上报 _mediator.Publish(new GetKnowledgeInfoSendNotification(data)); return id; //var data = _mapper.Map(dto); //var pusher = _pusherProvider.CreatePusher(_channelConfigurationManager); //var request = new GetKnowledgeInfoSendRequest(); //request.SetData(dto); //var response = await pusher.PushGetKnowledgeInfoSendAsync(request, cancellationToken: default); //return response.Description; //将上报信息写入本地库 // await _getCaseResultReceiveRepository.AddAsync(data); // await _mediator.Publish(new OrderCreatedNotification(new Orders.DataOrder())); //信息上报 //await _mediator.Publish(new GetCaseResultReceiveNotification(data)); // await _capPublisher.PublishAsync("GetCaseResultReceive", dto, cancellationToken: HttpContext.RequestAborted); } } }