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);
        }
Beispiel #2
0
        public void should_SendAsync()
        {
            var smartMessages = Builder <SmartMessage> .CreateListOfSize(10).Build().ToList();

            var bag = new SmartMessageBag(smartMessages);

            var responses = _psmartSendService.SendAsync(_sendPackageDTO, bag).Result;

            Assert.NotNull(responses);
            Console.WriteLine(responses);
        }
Beispiel #3
0
        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));
            }
        }