public async Task <SendResponse> SendAsync(SendPackageDTO sendTo, SmartMessageBag smartMessageBag) { var client = new HttpClient(); client.DefaultRequestHeaders.Add("SubscriberId", $"{sendTo.Destination.SubscriberId}"); if (sendTo.Destination.RequiresAuthentication()) { client.DefaultRequestHeaders.Add("Token", $"{sendTo.Destination.AuthToken}"); } var response = await client.PostAsJsonAsync(sendTo.GetUrl(_endPoint), smartMessageBag); SendResponse content = null; if (null != response && response.IsSuccessStatusCode) { try { content = await response.Content.ReadAsJsonAsync <SendResponse>(); } catch (Exception e) { // send error Log.Debug($"{e}"); } } return(content); }
public void SetUp() { _registry = new CentralRegistry(url, "PSMART"); _registry.AuthToken = _authToken; _registry.SubscriberId = _subId; _psmartSendService = new PsmartSendService(); _sendPackageDTO = Builder <SendPackageDTO> .CreateNew().With(x => x.Destination = _registry).Build(); var pMessages = new List <string> { "message 1", "message 1" }; _psmartMessage = new PsmartMessage(pMessages); }
public async Task <IActionResult> Send([FromBody] SendPackageDTO packageDTO) { if (!packageDTO.IsValid()) { return(BadRequest()); } try { if (packageDTO.Docket.IsSameAs("PSMART")) { //check if sending var extractHistory = _psmartExtractService.HasStarted(packageDTO.ExtractId.Value, ExtractStatus.Sending, ExtractStatus.Sent); if (null != extractHistory && extractHistory.IsSending()) { //prevent sending var eventHistory = _psmartExtractService.GetStatus(packageDTO.ExtractId.Value); if (null != eventHistory) { return(Ok(new { IsComplete = false, IsSending = true, eEvent = eventHistory })); } } var psmartdata = _psmartStageRepository.GetAll().ToList(); if (psmartdata.Count > 0) { var psmartDTO = psmartdata.Select(x => new SmartMessage { Eid = x.EId, Id = x.Uuid, PayLoad = x.Shr }).ToList() .ToList(); var bag = new SmartMessageBag(psmartDTO); _extractHistoryRepository.UpdateStatus(packageDTO.ExtractId.Value, ExtractStatus.Sending); var response = await _psmartSendService.SendAsync(packageDTO, bag); if (null != response) { if (response.IsValid()) { // update sent _extractHistoryRepository.UpdateStatus(packageDTO.ExtractId.Value, ExtractStatus.Sent, bag.Message.Count); _psmartExtractService.Complete(packageDTO.ExtractId.Value); _psmartStageRepository.UpdateStatus(bag.Message.Select(x => x.Eid), response.IsValid(), response.RequestId); var history = _psmartExtractService.GetStatus(packageDTO.ExtractId.Value); if (null != history) { return(Ok(new { IsComplete = true, IsSending = false, eEvent = history })); } return(Ok(response)); } } } } return(BadRequest()); } catch (Exception e) { var msg = $"Error loading {nameof(Extract)}(s)"; Log.Error(msg); Log.Error($"{e}"); return(StatusCode(500, msg)); } }