Esempio n. 1
0
        /// <summary>
        /// Place the order with data collected in the provided <see cref="Atomia.Store.Core.OrderContext"/>.
        /// </summary>
        /// <param name="orderContext">Context with cart, contact and other relevant data.</param>
        /// <returns>The results of placing the order</returns>
        public OrderResult PlaceOrder(OrderContext orderContext)
        {
            var publicOrderContext = new PublicOrderContext(orderContext);

            // Add some extra data that might be needed by order handlers.
            foreach (var cartItem in orderContext.Cart.CartItems)
            {
                var product         = productProvider.GetProduct(cartItem.ArticleNumber);
                var renewalPeriodId = renewalPeriodProvider.GetRenewalPeriodId(cartItem);

                publicOrderContext.AddItemData(new ItemData(cartItem, product, renewalPeriodId));
            }

            var paymentHandler = paymentDataHandlers.FirstOrDefault(h => h.Id == orderContext.PaymentData.Id);

            if (paymentHandler == null)
            {
                throw new InvalidOperationException(String.Format("Payment data handler is not available for {0}.", orderContext.PaymentData.Id));
            }

            var createdOrder = orderCreator.CreateOrder(publicOrderContext, paymentHandler);

            var redirectUrl = urlProvider.SuccessUrl;

            if (paymentHandler.PaymentMethodType == PaymentMethodEnum.PayByCard && createdOrder.Total > Decimal.Zero)
            {
                redirectUrl = paymentTransactionCreator.CreatePaymentTransaction(publicOrderContext, createdOrder, paymentHandler);
            }

            return(new OrderResult
            {
                RedirectUrl = redirectUrl
            });
        }
Esempio n. 2
0
        private void CreateOrder(Vector2 position)
        {
            var order = _orderCreator.CreateOrder(_foodSpawner.FoodSpawns);

            order.Connect("SpawnOrder", this, nameof(SpawnOrder));
            order.Position = position;
            _orderContainer.AddChild(order);
        }
        public void VerifyHospitalOneOrder()
        {
            HospitalState state = new HospitalState();
            state.AddItem(new InventoryLevel("DOSE0001", "AcuDose", "Acetaminophen", 2, 20, 4, 6));
            state.AddItem(new InventoryLevel("MEDCAR01", "MedCarousel", "Bismuth Subsalicylate", 4, 40, 10, 10));

            OrderCreator creator = new OrderCreator();

            HospitalOrder order = creator.CreateOrder(state);

            Assert.Contains(new HospitalOrderItem("DOSE0001", "Acetaminophen", 3), order.Items);
            Assert.Contains(new HospitalOrderItem("MEDCAR01", "Bismuth Subsalicylate", 4), order.Items);
        }
Esempio n. 4
0
 public static Ship[] CreateRandomShips(int shipsAmaunt, int indexStarsystem)
 {
     Ship[] shipsArr = new Ship[shipsAmaunt];
     for (int i = 0; i < shipsAmaunt; i++)
     {
         Vector3 position    = getRNDPosition();
         Vector3 destination = getRNDPosition();
         Ship    ship        = new Ship
         {
             id       = Galaxy.GetNextId(),
             name     = Rnd.Next(0, 100).ToString(),
             param    = Data.shipsParamArr[0],
             state    = EShipState.inSpace,
             location = new Location {
                 indexStarSystem = indexStarsystem,
                 dock            = null
             }
         };
         ship.order  = OrderCreator.CreateOrder(AI.EOrders.JumpToSystem, ship);
         shipsArr[i] = ship;
     }
     return(shipsArr);
 }
Esempio n. 5
0
 public void CreateOrder(string dish, string client)
 {
     orderCreator.CreateOrder(GetDish(dish), GetClient(client));
 }
Esempio n. 6
0
 public override EStateNode Tick(Ship ship)
 {
     ship.order = OrderCreator.CreateOrder(eOrder, ship);
     return(EStateNode.SUCCESS);
 }
Esempio n. 7
0
        private static void Main()
        {
            Console.OutputEncoding = Encoding.UTF8;

            #region Считывание Ширины Количества Имён и проверка

            var desired = new List <int>(150);
            using (var reader = new StreamReader("widthes.txt"))
            {
                string strNum;
                while ((strNum = reader.ReadLine()) != null)
                {
                    desired.Add(Convert.ToInt32(strNum));
                }
            }

            var names = new List <string>(desired.Count);
            using (var reader = new StreamReader("names.txt"))
            {
                string name;
                while ((name = reader.ReadLine()) != null)
                {
                    names.Add(name);
                }
            }

            var counts = new List <decimal>(desired.Count);
            using (var reader = new StreamReader("counts.txt"))
            {
                string strNum;
                while ((strNum = reader.ReadLine()) != null)
                {
                    counts.Add(Convert.ToDecimal(strNum));
                }
            }

            if (counts.Count != desired.Count || desired.Count != names.Count)
            {
                throw new Exception("Не равное количество параметров");
            }

            #endregion

            var commonInfoList = desired.Select((t, i) => new CommonInfo(names[i], t, counts[i])).ToList();

            #region Агрегация материалов с одинаковым Width

            var elementsCount = commonInfoList.Select(x => x.Width).Distinct();
            var resultList    = new List <CommonInfo>();

            foreach (var item in elementsCount)
            {
                var tmp = commonInfoList.Where(x => x.Width == item);
                resultList.Add(tmp.Aggregate((prev, next) =>
                {
                    prev.Name  += ", " + next.Name;
                    prev.Count += next.Count;
                    return(prev);
                }));
            }
            #endregion

            OrderCreator orderCreator = new OrderCreator();
            var          result       = orderCreator.CreateOrder(resultList);
            var          exporter     = new Exporter(@"result.xlxs");
            exporter.WriteFile(result);

            //Console.ReadKey(true);
        }