Ejemplo n.º 1
0
        public IResult Update(Order order, List <Product> products)                     //want servisden sipariş ve uygun ürünlerin listesi geliyor
        {
            var     customerWallet = _walletService.GetByUserId(order.CustomerId).Data; //müşteri cüzdanı
            decimal quantity       = order.Quantity;

            if (customerWallet.Amount >= fiyatartiYuzdebir(order.Quantity * order.UnitPrice)) //ürün + muhasebeci payına parası yetiyor mu
            {
                var orderDetails = OrderControl(ref order, products, customerWallet);         //order control methodundan detayları çekiyor
                order.OrderPending = false;                                                   //order gerçekleşti
                _orderDal.Update(order);                                                      //güncelleniyor

                if (quantity != order.Quantity)                                               //başta istenen miktar verilen miktara eşit değilse
                {
                    var newOrder = order;                                                     //eskisinden yeni nesne oluşuyor
                    newOrder.Quantity     = quantity - order.Quantity;                        //miktarı belirleniyor eksik kalan siparişin
                    newOrder.OrderPending = true;                                             //beklemeye alınıyor
                    newOrder.Id           = 0;                                                //id =0 yeni veri
                    _orderDal.Add(newOrder);                                                  //tabloya ekleniyor
                }
                _orderDetailService.AddList(orderDetails.Data);                               //detaylar ekleniyor
                return(new SuccessResult());
            }

            return(new ErrorResult());
        }