Example #1
0
        private void LogResponse(SendTextRequest request, SendTextResponse response)
        {
            Logger.Current.Verbose("Request received for logging text response");
            //SentText & SentTextDetails Table
            var sentText = new SentTextDb
            {
                Token       = request.TokenGuid,
                RequestGuid = request.RequestGuid,
                CreatedDate = DateTime.Now,
            };

            unitOfWork.SentTextRepository.Add(sentText);
            unitOfWork.Commit();
            SentTextDb sentTextdb     = unitOfWork.SentTextRepository.FirstOrDefault(mr => mr.RequestGuid == request.RequestGuid);
            var        sentTextDetail = new SentTextDetailsDb
            {
                TextResponseID  = sentTextdb.TextResponseID,
                From            = request.From,
                To              = request.To.ToPlainString(),
                SenderID        = request.SenderId,
                Message         = request.Message,
                Status          = (byte)response.StatusID,
                ServiceResponse = response.ServiceResponse
            };

            unitOfWork.SentTextDetailsRepository.Add(sentTextDetail);
            unitOfWork.Commit();
            Logger.Current.Verbose("Logging text response was successful");
        }
Example #2
0
        private void QueueMessages(List <SendTextRequest> request)
        {
            var batchLoad = 300;
            var queueTime = DateTime.UtcNow;

            var iterations = (request.Count / batchLoad);

            if ((request.Count % batchLoad) > 0)
            {
                iterations++;
            }

            Logger.Current.Verbose("Request received for queueing list of text requests");

            for (int i = 0; i < iterations; i++)
            {
                var currentIterations = request.Skip(i * batchLoad).Take(batchLoad).ToList();

                currentIterations.ForEach(item =>
                {
                    this.unitOfWork.SentTextRepository.Add(new SentTextDb
                    {
                        CreatedDate = DateTime.UtcNow,
                        RequestGuid = item.RequestGuid,
                        Token       = item.TokenGuid,
                    });
                    unitOfWork.Commit();
                    SentTextDb sentTextdb = unitOfWork.SentTextRepository.Single(mr => mr.RequestGuid == item.RequestGuid);
                    this.unitOfWork.SendTextQueueRepository.Add(new SendTextQueueDb
                    {
                        TokenGuid   = item.TokenGuid,
                        RequestGuid = item.RequestGuid,
                        //From = item.From,
                        //PriorityID = item.PriorityID,
                        ScheduledTime = item.ScheduledTime,
                        QueueTime     = queueTime,
                        //StatusID = CommunicationStatus.Queued,
                        //ServiceResponse = string.Empty
                    });
                    this.unitOfWork.SentTextDetailsRepository.Add(new SentTextDetailsDb
                    {
                        TextResponseID = sentTextdb.TextResponseID,
                        From           = item.From,
                        To             = item.To.ToPlainString(),
                        SenderID       = item.SenderId,
                        Message        = item.Message,
                        Status         = (byte)CommunicationStatus.Queued
                                         //ServiceResponse = response.ServiceResponse
                    });
                });
                unitOfWork.Commit();
            }
            Logger.Current.Verbose("Queueing text requests was successful");
        }
Example #3
0
 public void UpdateScheduledReminder(Guid requestGuid, SendTextRequest request)
 {
     Logger.Current.Verbose("Request received for updating scheduled reminder from SendTextQueue");
     if (requestGuid != null && request != null)
     {
         SendTextQueueDb sendTextQueue = this.unitOfWork.SendTextQueueRepository.FirstOrDefault(f => f.RequestGuid == requestGuid);
         if (sendTextQueue != null)
         {
             sendTextQueue.QueueTime     = DateTime.UtcNow;
             sendTextQueue.ScheduledTime = request.ScheduledTime;
         }
         SentTextDetailsDb sendTextDetail = new SentTextDetailsDb();
         SentTextDb        textResponse   = this.unitOfWork.SentTextRepository.FirstOrDefault(f => f.RequestGuid == requestGuid);
         if (textResponse != null)
         {
             sendTextDetail = this.unitOfWork.SentTextDetailsRepository.FirstOrDefault(f => f.TextResponseID == textResponse.TextResponseID);
         }
         if (sendTextDetail != null)
         {
             sendTextDetail.From     = request.From;
             sendTextDetail.Message  = request.Message;
             sendTextDetail.SenderID = request.SenderId;
             sendTextDetail.To       = request.To.FirstOrDefault();
         }
         if (sendTextQueue == null && sendTextDetail != null)
         {
             this.unitOfWork.SendTextQueueRepository.Add(new SendTextQueueDb
             {
                 TokenGuid   = request.TokenGuid,
                 RequestGuid = request.RequestGuid,
                 //From = item.From,
                 //PriorityID = item.PriorityID,
                 ScheduledTime = request.ScheduledTime,
                 QueueTime     = DateTime.UtcNow,
                 //StatusID = CommunicationStatus.Queued,
                 //ServiceResponse = string.Empty
             });
         }
         unitOfWork.Commit();
     }
 }