public async Task <CommunicationResponse> Handle(SendSMSRequest Request, CancellationToken cancellationToken)
        {
            try
            {
                var Message = new MessagingQueue()
                {
                    MobileNo    = Request.MobileNo,
                    SMSText     = Request.Message,
                    SMSSendBy   = 0,
                    Status      = Convert.ToInt16(MessageStatusType.Initialize),
                    CreatedBy   = 1,
                    CreatedDate = DateTime.UtcNow
                };
                _MessageRepository.Add(Message);
                Message.InQueueMessage();
                _MessageRepository.Update(Message);
                IQueryable Result = await _MessageConfiguration.GetAPIConfigurationAsync(1, 1);

                foreach (CommunicationProviderList g in Result)
                {
                    await _MessageService.SendSMSAsync(Message.MobileNo, Message.SMSText, g.SMSSendURL, g.SenderID, g.UserID, g.Password);
                }
                return(await Task.FromResult(new CommunicationResponse { ErrorCode = 101, ReturnMsg = "Message sent." }));
            }
            catch (Exception ex)
            {
                return(await Task.FromResult(new CommunicationResponse { ErrorCode = 99, ReturnMsg = "Message not sent." }));
            }
        }
Beispiel #2
0
        public async Task <CommunicationResponse> Handle(SendSMSRequest Request, CancellationToken cancellationToken)
        {
            try
            {
                var Message = new MessagingQueue()
                {
                    MobileNo    = Request.MobileNo,
                    SMSText     = Request.Message,
                    SMSSendBy   = 0,
                    Status      = Convert.ToInt16(enMessageService.Init),
                    CreatedBy   = 1,
                    CreatedDate = DateTime.UtcNow
                };
                _MessageRepository.Add(Message);
                Message.InQueueMessage();
                _MessageRepository.Update(Message);
                IQueryable Result = await _MessageConfiguration.GetAPIConfigurationAsync(1, 1);

                foreach (CommunicationProviderList Provider in Result)
                {
                    string Response = await _MessageService.SendSMSAsync(Message.MobileNo, Message.SMSText, Provider.SendURL, Provider.SenderID, Provider.UserID, Provider.Password);

                    //string Response = " GUID:2387354506261631296 , responseTime:2018-10-05 16:00:46";
                    CopyClass.CopyObject(Provider, ref _GetDataForParsingAPI);
                    _GenerateResponse = _WebApiParseResponse.ParseResponseViaRegex(Response, _GetDataForParsingAPI);
                    if (_GenerateResponse.Status == enTransactionStatus.Success)
                    {
                        Message.SentMessage();
                        Message.RespText = Response;
                        _MessageRepository.Update(Message);
                        return(await Task.FromResult(new CommunicationResponse { ReturnCode = enResponseCode.Success, ReturnMsg = EnResponseMessage.SMSSuccessMessage }));
                    }
                    else
                    {
                        continue;
                    }
                }
                Message.FailMessage();
                _MessageRepository.Update(Message);
                return(await Task.FromResult(new CommunicationResponse { ReturnCode = enResponseCode.Fail, ReturnMsg = EnResponseMessage.SMSFailMessage }));
            }
            catch (Exception ex)
            {
                return(await Task.FromResult(new CommunicationResponse { ReturnCode = enResponseCode.InternalError, ReturnMsg = EnResponseMessage.SMSExceptionMessage }));
            }
        }