private async void ConfirmPayment(UnconfirmedPaymentItem paymentInfoItem)
        {
            using (var c = NestedContainer)
            {
                var order = Using<IMainOrderRepository>(c).GetById(paymentInfoItem.OrderId);
                var paymentbridgeService = Using<IPaymentGateWayBridge>(c);

                if (order != null && order.GetPayments.Count>0)
                {
                    var payments=order.GetPayments;
                    if (payments.Any(p => p.Id == paymentInfoItem.LineItemId && p.IsConfirmed))
                    {
                        MessageBox.Show("This payment has already been confirmed.", "Distributr: Payment Module",
                                        MessageBoxButton.OK);
                        return;
                    }
                    try
                    {
                        var paymentInfo = payments.FirstOrDefault(p => p.Id == paymentInfoItem.LineItemId);
                        var responce = await paymentbridgeService.GetNotification(paymentInfo);
                        if (responce !=null  && responce.PaymentNotificationDetails.Any(s=>!s.IsUsed) )
                        {
                            foreach (var notItem in responce.PaymentNotificationDetails)
                            {
                                var payment = new PaymentInfo()
                                {
                                    Id = new Guid(responce.TransactionRefId),
                                    Amount = (decimal)notItem.PaidAmount,
                                    ConfirmedAmount = (decimal) notItem.PaidAmount,
                                    PaymentRefId = responce.SDPReferenceId,
                                    MMoneyPaymentType = paymentInfo.MMoneyPaymentType,
                                    NotificationId = notItem.Id.ToString(),
                                    PaymentModeUsed = paymentInfo.PaymentModeUsed,
                                    IsConfirmed = true,
                                    IsProcessed = false

                                };
                                paymentbridgeService.ConfirmNotification(notItem.Id);
                                order.AddOrderPaymentInfoLineItem(payment);
                                    
                            }
                            Config config = Using<IConfigService>(c).Load();
                            if (order.OrderType==OrderType.DistributorPOS)
                                Using<IOrderPosWorkflow>(c).Submit(order,config);

                            else
                            {
                                
                 
                                Using<IOrderWorkflow>(c).Submit(order,config);
                            }
                            Load();

                            MessageBox.Show("This payment confirmed.", "Distributr: Payment Module",
                                       MessageBoxButton.OK);
                        }
                        //if(Using<IPaymentUtils>(c).ConfirmPayment(paymentInfo))
                        //{
                        //    order.AddOrderPaymentInfoLineItem(paymentInfo);

                        //    if (order.DocumentReference.ToLower().StartsWith("sale"))
                        //        Using<IOrderPosWorkflow>(c).Submit(order);

                        //    else
                        //    {
                        //        Using<IOrderWorkflow>(c).Submit(order);
                        //    }
                        //    Load();

                        //    MessageBox.Show("This payment confirmed.", "Distributr: Payment Module",
                        //               MessageBoxButton.OK);
                     
                        //}

                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
               
            }
        }
 private void ViewPaymentDetails(UnconfirmedPaymentItem item)
 {
     using (var c =NestedContainer)
     {
         var payment = Using<IMainOrderRepository>(c).GetById(item.OrderId).GetPayments.FirstOrDefault(p => p.Id == item.LineItemId);
         
         if(payment !=null)
             Using<IPaymentUtils>(c).GetPaymentDetails(payment.PaymentRefId, payment.PaymentModeUsed.ToString());             
         
     }
 }