示例#1
0
 public IEnumerable <Event> Update(Event evn)
 {
     return(evn switch
     {
         OrderPaid x => Update(x),
         _ => new[] { evn }
     });
示例#2
0
        //public SingleOntimePayResponse SingleOntimePay(string Name, string BarkNumber, int Amount, string REQ_SN)
        //{
        //    SingleOntimePayRquest request = new SingleOntimePayRquest();

        //    request.INFO.REQ_SN = REQ_SN;

        //    request.TRANS.BUSINESS_CODE = "09900";
        //    request.TRANS.SUBMIT_TIME = DateTime.Now.ToString("yyyyMMddHHmmss");
        //    request.TRANS.ACCOUNT_NO = BarkNumber;
        //    request.TRANS.ACCOUNT_NAME = Name;
        //    request.TRANS.ACCOUNT_PROP = "0";
        //    request.TRANS.AMOUNT = Amount;
        //    request.TRANS.ACCOUNT_KIND = "01";


        //    var response = tltExec.Exec(request);

        //    return response as SingleOntimePayResponse;
        //}

        public SingleOntimePayResponse SingleOntimePay(OrderPaid orderPaid, PingAnOrderPaidRecharge pingAnOrderPaidRecharge)
        {
            SingleOntimePayRquest request = new SingleOntimePayRquest(this.tltExec);

            request.INFO.REQ_SN = pingAnOrderPaidRecharge.SerialNumber;

            request.TRANS.BUSINESS_CODE  = "09900";
            request.TRANS.SUBMIT_TIME    = DateTime.Now.ToString("yyyyMMddHHmmss");
            request.TRANS.ACCOUNT_NO     = orderPaid.Member.AccountPingAn.BankCardNumber; //银行卡号(平安二类户卡号)
            request.TRANS.ACCOUNT_NAME   = orderPaid.MemberName;
            request.TRANS.ACCOUNT_PROP   = "0";
            request.TRANS.AMOUNT         = decimal.ToInt32(orderPaid.TransactionAmount * 100);
            request.TRANS.FIRST_ACCTNO   = orderPaid.Member?.AccountPingAn.OutCardNo; //转入银行卡号(代付出金卡)
            request.TRANS.FIRST_ACCTNAME = orderPaid.Member?.AccountPingAn.CnName;
            request.TRANS.ACCOUNT_ATTRB  = "2";
            //--------------------------------------------------------------------
            request.TRANS.BANK_CODE    = pingAnOrderPaidRecharge?.BankCode;
            request.TRANS.BANK_NAME    = pingAnOrderPaidRecharge?.BankName;
            request.TRANS.ACCOUNT_TYPE = pingAnOrderPaidRecharge?.AccountType;
            request.TRANS.PROVINCE     = pingAnOrderPaidRecharge?.Province;
            request.TRANS.CITY         = pingAnOrderPaidRecharge?.City;
            request.TRANS.ACCOUNT_PROP = pingAnOrderPaidRecharge?.AccountProp ?? "0";
            request.TRANS.UNION_BANK   = pingAnOrderPaidRecharge?.UnionBank;

            var response = tltExec.Exec(request);

            return(response as SingleOntimePayResponse);
        }
示例#3
0
        public void after_orderPaid_then_orderCompleted()
        {
            // given
            var d = new FakeDispatcher();
            var m = new Runner(d);
            var o = new Order {
                OrderId = Guid.NewGuid()
            };

            // when
            var inputEvent = new OrderPaid {
                Order = o
            };

            m.Handle(inputEvent);

            // then
            Assert.Equal(2, d.Messages.Count);

            Assert.IsType <PrintOrder>(d.Messages[0]);
            Assert.IsType <OrderCompleted>(d.Messages[1]);

            var x0 = d.Messages[0] as PrintOrder;
            var x1 = d.Messages[1] as OrderCompleted;

            Assert.Equal(o.OrderId, x0.Order.OrderId);
            Assert.Equal(inputEvent.CorrelationId, x0.CorrelationId);
            Assert.Equal(inputEvent.MessageId, x0.ParentId);

            Assert.True(x1.Success);
            Assert.False(x1.Retried);
            Assert.Equal(o.OrderId, x1.Order.OrderId);
            Assert.Equal(inputEvent.CorrelationId, x1.CorrelationId);
            Assert.Equal(inputEvent.MessageId, x1.ParentId);
        }
示例#4
0
        public ActionResult OrderPaid()
        {
            decimal dec    = 76;
            var     entity = new OrderPaid();

            entity.MerchantID = 1;

            entity.OrderNumber = "20181107163253195868";
            //  entity.HouseTypeShowID = 24;
            entity.EquipmentSNNo     = "600047000103";
            entity.EmployeeID        = 7;
            entity.TransactionAmount = dec;
            //entity.SerialNumber = "	111863250000001641";
            entity.MemberID = 2;
            entity.Status   = 1;
            // entity.PaymentStatus = 0;
            //entity.PaymentType = 2;

            //entity.BankCardNumber = "123456789987654";
            entity.Remark = "a昂达三季度噶三季度撒";


            iOrderPaidService.Save(entity);
            iOrderPaidService.Commit();


            return(View());
        }
示例#5
0
 public bool Consume(OrderPaid message)
 {
     TopicPubSub.Instance.Publish(Topics.CompletedOrders, new OrderCompleted {
         Order = message.Order
     });
     return(true);
 }
示例#6
0
 public async Task Handle(OrderPlaced message, IMessageHandlerContext context)
 {
     this.log.Info($"Collected payment for order {message.OrderId} from customer {message.CustomerId}");
     var orderPaid = new OrderPaid {
         OrderId = message.OrderId
     };
     await context.Publish(orderPaid);
 }
示例#7
0
 public void Pay(string orderId)
 {
     _orderStatuses[orderId] = "Waiting to pay";
     Task.Run(() =>
     {
         Thread.Sleep(2000);
         OrderPaid?.Invoke(this, new EventArgs());
     });
 }
        public void Handle(OrderPaid order)
        {
            var message = new CookFood {
                Order = order.Order
            };

            message.ReplyTo(order);

            _publisher.Publish(message);
        }
 public void InsertOrUpdate(OrderPaid orderpaid)
 {
     if (orderpaid.Id == default(System.Guid)) {
         // New entity
         orderpaid.Id = Guid.NewGuid();
         context.OrderPaids.Add(orderpaid);
     } else {
         // Existing entity
         context.Entry(orderpaid).State = EntityState.Modified;
     }
 }
示例#10
0
 private void HandleInternal(OrderPaid message)
 {
     this.Finished.Invoke(this, new MidgetEventArgs()
     {
         CorrelationId = message.CorrelationId
     });
     this.publisher.Publish(new PrintOrder(message)
     {
         Order = message.Order
     });
 }
 public ActionResult Create(OrderPaid orderpaid)
 {
     if (ModelState.IsValid) {
         orderpaidRepository.InsertOrUpdate(orderpaid);
         orderpaidRepository.Save();
         return RedirectToAction("Index");
     } else {
         ViewBag.PossibleWaiters = waiterRepository.All;
         ViewBag.PossibleRestaurants = restaurantRepository.All;
         return View();
     }
 }
示例#12
0
        /// <summary>
        /// 解止付接口
        /// </summary>
        /// <returns></returns>
        public UnFreezeMarginsOrderResponse UnFreezeMarginsOrder(OrderPaid orderPaid)
        {
            UnFreezeMarginsOrderRequest request = new UnFreezeMarginsOrderRequest();

            request.channel     = channel;
            request.bankOrderNo = orderPaid.PingAnOrderPaid.BankOrderNo;
            request.cardNumber  = orderPaid.Member.IDNumber;
            request.transCode   = "004";

            var response = pingAnExec.Exec(request);

            return(response as UnFreezeMarginsOrderResponse);
        }
示例#13
0
 public void Handle(OrderPaid m)
 {
     _dispatcher.Publish(new PrintOrder(m)
     {
         Order = m.Order
     });
     _dispatcher.Publish(new OrderCompleted(m)
     {
         Order   = m.Order,
         Success = true,
         Retried = _calledback
     });
 }
示例#14
0
        private void HandlePayForOrder(PayForOrder cmd)
        {
            var order = this.QueryOrder(cmd.OrderId);

            var orderPaid = new OrderPaid {
                Order = order
            };

            // like Forward
            Context.ActorSelection("akka://ec/user/inventory").Tell(orderPaid, this.Sender);

            Context.System.EventStream.Publish(orderPaid);
        }
 public void Handle(OrderPaid message)
 {
     if (message == null)
     {
         return;
     }
     _publisher.Publish(new CookFood()
     {
         CorrelationId = message.CorrelationId,
         CausationId   = message.EventId,
         Order         = message.Order
     });
 }
示例#16
0
 public void InsertOrUpdate(OrderPaid orderpaid)
 {
     if (orderpaid.Id == default(System.Guid))
     {
         // New entity
         orderpaid.Id = Guid.NewGuid();
         context.OrderPaids.Add(orderpaid);
     }
     else
     {
         // Existing entity
         context.Entry(orderpaid).State = EntityState.Modified;
     }
 }
示例#17
0
        /// <summary>
        /// 查询订单接口
        /// </summary>
        /// <returns></returns>
        public QueryMarginsOrderDetailResponse QueryMarginsOrderDetail(OrderPaid orderPaid)
        {
            QueryMarginsOrderDetailRequest request = new QueryMarginsOrderDetailRequest();

            request.channel     = channel;
            request.bankOrderNo = orderPaid.PingAnOrderPaid.BankOrderNo;
            request.cardNumber  = orderPaid.Member.IDNumber;
            request.accountType = "";  //1一类户2二类户
            request.transCode   = "002";

            var response = pingAnExec.Exec(request);

            return(response as QueryMarginsOrderDetailResponse);
        }
        private void OnOrderPaid(OrderPaid evt)
        {
            this.DecreaseStock(evt.Order.Products);

            Console.WriteLine($"Products '{string.Join(",", evt.Order.Products.Select(x => x.Id))}' stock decreased.");
            Console.WriteLine();

            var deliveryProducts = new DeliveryProducts {
                Products = evt.Order.Products
            };

            this.logisticsActor.Forward(deliveryProducts);
            //this.logisticsActor.Tell(deliveryProducts, this.Sender);
        }
示例#19
0
 public ActionResult Edit(OrderPaid orderpaid)
 {
     if (ModelState.IsValid)
     {
         orderpaidRepository.InsertOrUpdate(orderpaid);
         orderpaidRepository.Save();
         return(RedirectToAction("Index"));
     }
     else
     {
         ViewBag.PossibleWaiters     = waiterRepository.All;
         ViewBag.PossibleRestaurants = restaurantRepository.All;
         return(View());
     }
 }
示例#20
0
        public void Handle(OrderPaid message)
        {
            if (message == null)
            {
                return;
            }
            _publisher.Publish(new SpikeOrder()
            {
                CorrelationId = message.CorrelationId,
                CausationId   = message.EventId,
                Order         = message.Order
            });

            _publisher.UnSubscribe(message.CorrelationId);
        }
示例#21
0
 public void Handle(OrderPaid m)
 {
     _dispatcher.Publish(new CookFood(m)
     {
         Order = m.Order
     });
     _dispatcher.Publish(new Callback(m)
     {
         Seconds = 2,
         Payload = new CookFoodCalledBack(m)
         {
             Attempt = 1,
             Order   = m.Order
         }
     });
 }
        public void Handle(OrderPaid message)
        {
            var cookOrder = new CookOrder(message.Order, DateTime.Now.AddSeconds(1000))
            {
                MessageId     = Guid.NewGuid(),
                CorrelationId = message.CorrelationId,
                CausationId   = message.MessageId
            };

            _bus.Publish(new RemindmeCommand <CookOrder>(2, cookOrder)
            {
                MessageId     = Guid.NewGuid(),
                CorrelationId = message.CorrelationId,
                CausationId   = message.MessageId
            });
            _bus.Publish(cookOrder);
        }
示例#23
0
        public void Handle(TakePayment message)
        {
            var order = message.Order;

            Console.WriteLine("Processing Payment...");

            order = order.SetPaid(true);

            var @event = new OrderPaid {
                Order = order
            };

            @event.CorrelationId = message.CorrelationId;
            @event.CausationId   = message.Id;

            _publisher.Publish(@event);
        }
示例#24
0
 public void Handle(OrderPaid message)
 {
     if (_expectedNextCausationId == message.CausationId)
     {
         var orderCompleted = new OrderCompleted(message.Order)
         {
             MessageId     = Guid.NewGuid(),
             CorrelationId = message.CorrelationId,
             CausationId   = message.MessageId
         };
         _expectedNextCausationId = orderCompleted.MessageId;
         _bus.Publish(orderCompleted);
     }
     else
     {
         Console.WriteLine("Received Evil Message: Order Paid {0}", message.Order.Id);
     }
 }
示例#25
0
        /// <summary>
        /// 预下单接口
        /// </summary>
        /// <returns></returns>
        public PreparedFreezeOrderResponse PreparedFreezeOrder(OrderPaid orderPaid, PingAnOrderPaid pingAnOrderPaid)
        {
            PreparedFreezeOrderRequest request = new PreparedFreezeOrderRequest();

            request.channel         = pingAnOrderPaid.Channel;
            request.userName        = orderPaid.MemberName;
            request.cardNumber      = orderPaid.MemberIDNumber;
            request.mobile          = orderPaid.MemberMobile;
            request.businessName    = pingAnOrderPaid.BusinessName;
            request.orderValidDay   = pingAnOrderPaid.OrderValidDay;
            request.freezeAmt       = Convert.ToDouble(orderPaid.TransactionAmount);
            request.freezeTimeLimit = pingAnOrderPaid.FreezeTimeLimit;
            request.freezeProduct   = pingAnOrderPaid.FreezeProduct;
            request.autoFreeze      = pingAnOrderPaid.AutoFreeze;
            request.transCode       = pingAnOrderPaid.TransCode;

            var response = pingAnExec.Exec(request);

            return(response as PreparedFreezeOrderResponse);
        }
示例#26
0
        private async Task HandleAsync(OrderPaid mjp)
        {
            Log.Information("Order: " + mjp.OrderId);
            Order order = new Order
            {
                OrderId     = mjp.OrderId.ToString(),
                CustomerId  = mjp.CustomerId,
                OrderDate   = mjp.OrderDate,
                PaymentType = mjp.PaymentType
            };

            Log.Information("Register Order: {Id}, {CustomerId}, {OrderDate}}",
                            order.OrderId, order.CustomerId, order.OrderDate);

            string   customerId = order.CustomerId;
            Customer customer   = await _repo.GetCustomerAsync(customerId);

            StringBuilder body = new StringBuilder();

            body.AppendLine($"Dear {customer.Name},\n");
            body.AppendLine($"The following order has been placed:\n");
            body.AppendLine($"- {order.OrderDate.ToString("dd-MM-yyyy")} : " +
                            $"Order has been placed with order number {order.OrderId}");
            body.AppendLine($"\nWe will notify you when your order has been sent.\n");
            body.AppendLine($"Greetings,\n");
            body.AppendLine($"The Ball crew");

            Log.Information("Sent notification to: {CustomerName}", customer.Name);

            // send notification
            await _emailNotifier.SendEmailAsync(
                customer.EmailAddress, "*****@*****.**", "Order has been placed", body.ToString());



            await _repo.RegisterOrderAsync(order);
        }
示例#27
0
 public void When(OrderPaid paid)
 {
 }
 private void OnOrderPaid(OrderPaid evt)
 {
     Console.WriteLine($"Order '{evt.Order.Id}' paid.");
     Console.WriteLine();
 }
示例#29
0
 public void Handle(OrderPaid message)
 {
     Console.WriteLine(message.CorrelationId);
     Console.WriteLine(message.GetType());
     Console.WriteLine(message.Order);
 }
 public void Handle(OrderPaid message)
 {
     _orderStatuses[message.Order.Id] = OrderStatus.Paid;
 }
示例#31
0
 public void Handle(OrderPaid message)
 {
     Data.OrderIsPaid = true;
     DeliverOrder();
 }