public void NotifyFinalAmountToUser(int userId, TransactionInformation shownTransaction)
 {
     var hubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<NotifyHub>();
     foreach (var connectionId in NotifyHub._connections.GetConnections(userId.ToString()))
     {
         hubContext.Clients.Client(connectionId).showTransactionConfirmation(shownTransaction);
     }
 }
        public object ReShowConfirmedPopup([FromBody] UserConfirmTransaction model)
        {
            try
            {
                if (model == null)
                {
                    return new HttpResponseMessage(HttpStatusCode.BadRequest);
                }

                var goEatApi = GoEatApi.Instance;
                var result = goEatApi.GetModifyTransaction(model.id).Data;
                bool isSuccess = false;

                if (result != null)
                {
                    if (result.drink_status == (int)GoEat.Models.TransactionStatus.Pending)
                    {
                        TransactionInformation transaction = new TransactionInformation
                        {
                            original_price = result.original_price,
                            amount = result.token_amount,
                            order_id = result.order_id,
                            main_transaction_id = result.id,
                            quantity = result.drinks,
                        };
                        NotifyFinalAmountToUser(result.customer_id, transaction);
                        isSuccess = true;
                        return new
                        {
                            success = isSuccess,
                            mainTransactionId = model.id,
                            status = isSuccess ? result.drink_status : 0,
                            error_code = isSuccess ? string.Empty : ErrorCodes.TransactionNotFound.ToString()
                        };
                    }
                    else
                    {
                        return new
                        {
                            success = false,
                            mainTransactionId = model.id,
                            status = result.drink_status,
                            error_code = string.Empty
                        };
                    }
                }

                return new
                {
                    success = isSuccess,
                    mainTransactionId = model.id,
                    status = isSuccess ? result.drink_status : 0,
                    error_code = isSuccess ? string.Empty : ErrorCodes.TransactionNotFound.ToString()
                };
            }
            catch
            {
                return new
                {
                    success = false,
                    error_code = ErrorCodes.ServerError.ToString()
                };
            }
        }
        private object CreatePendingTokenTransaction(int mainTransactionId, TransactionModel model)
        {
            GoEatApi goEatApi = GoEatApi.Instance;

            var trans = goEatApi.GetMainTransaction(mainTransactionId);

            MainTransaction updatedTrans = CreateTokenTransactionEntity(trans.Data, model);

            goEatApi.UpdateTokenTransaction(updatedTrans);

            bool isSuccess = false;

            if (mainTransactionId > 0)
            {

                TransactionInformation transaction = new TransactionInformation
                {
                    quantity = updatedTrans.drinks,
                    main_transaction_id = mainTransactionId,
                    amount = updatedTrans.token_amount
                };
                NotifyFinalAmountToUser(model.customer_id, transaction);
                isSuccess = true;
            }
            return new
            {
                success = isSuccess,
                mainTransactionId = mainTransactionId,
                error_code = isSuccess ? string.Empty : ErrorCodes.ServerError.ToErrorMessage()
            };
        }
Beispiel #4
0
 public void ShowTransactionConfirmation(string connectionId, TransactionInformation shownTransaction)
 {
     string name = Context.User.Identity.GetUserId<int>().ToString();
     Clients.Client(connectionId).showTransactionConfirmation(shownTransaction);
 }