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."); } } }