Beispiel #1
0
        public async Task <ApiResponse <CaseExistenceModel> > DoesCaseExistForTransaction(int transactionId)
        {
            try
            {
                var transactionCase = caseRepository
                                      .Query()
                                      .Where(e => e.Transaction.ID == transactionId)
                                      .SingleOrDefault(e => e.Status != CaseStatus.Closed);
                var caseExistenceModel = new CaseExistenceModel();
                if (transactionCase == null)
                {
                    caseExistenceModel.DoesExist = false;
                    caseExistenceModel.Id        = 0;
                }
                else
                {
                    caseExistenceModel.DoesExist = true;
                    caseExistenceModel.Id        = transactionCase.ID;
                }

                var response = new ApiResponse <CaseExistenceModel>(caseExistenceModel);
                return(response);
            }
            catch (Exception e)
            {
                return(HandleErrorAndReturnStatus <ApiResponse <CaseExistenceModel> >(e));
            }
        }
        public override async void ViewDidLoad()
        {
            base.ViewDidLoad();

            var newCaseCreated = false;

            Title = "Chatting With Agent";
            EdgesForExtendedLayout = UIRectEdge.None;
            viewModel = new MessageDetailViewModel();

            // You must set your SenderId and display name
            SenderId          = AppSettingsManager.ClientId;
            SenderDisplayName = AppSettingsManager.UserNickName;

            // These MessagesBubbleImages will be used in the GetMessageBubbleImageData override
            outgoingBubbleImageData = bubbleFactory.CreateOutgoingMessagesBubbleImage(UIColorExtensions.MessageBubbleLightGrayColor);
            incomingBubbleImageData = bubbleFactory.CreateIncomingMessagesBubbleImage(UIColorExtensions.MessageBubbleBlueColor);

            // Springy bubbles
            CollectionView.CollectionViewLayout.SpringinessEnabled = true;

            if (SelectedTransactionId != 0)
            {
                caseModel = await viewModel.DoesCaseExist(SelectedTransactionId);

                if (caseModel.DoesExist)
                {
                    caseId = caseModel.Id;
                    Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Getting your message history.");
                }
                else
                {
                    Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Creating case.");
                    var newCase = await viewModel.CreateCaseCommand(SelectedTransactionId);

                    caseId              = newCase.Id;
                    caseModel.Id        = newCase.Id;
                    caseModel.DoesExist = newCase.IsCreated;
                    newCaseCreated      = true;
                }

                // get ip messaging client
                client = await GetTwilioIpMessagingClient();

                if (newCaseCreated)
                {
                    Acr.UserDialogs.UserDialogs.Instance.ShowSuccess("Please send your message when ready.");
                }
            }
        }