Beispiel #1
0
        public CompleteOrder SaveCurrentOrderInDb(CartCollection cartCollection, ShipmentInfo shipmentInfo)
        {
            if (shipmentInfo.ShipmentOption == null)
            {
                Console.WriteLine("empty shipment option");
            }

            var currentOrder = GetCurrentCompleteOrder(cartCollection, shipmentInfo);
            var baseOrder    = BaseOrder.CreateBaseOrder(currentOrder);

            baseOrder = _baseOrderRepository.SaveAndFlush(baseOrder);

            currentOrder.OrderId = baseOrder.Id;

            var orderEventList = OrderEvent.createOrderEventList(currentOrder);

            _orderEventRepository.SaveAll(orderEventList);
            if (VerifyOrder(orderEventList))
            {
                baseOrder.OrderStatus = OrderProcessingStatus.Verified.ToString();
            }
            else
            {
                baseOrder.OrderStatus = OrderProcessingStatus.VerificationFailed.ToString();
            }

            baseOrder = _baseOrderRepository.Update(baseOrder);

            return(currentOrder);
        }
        private static BaseOrder CreateOrder(string tradeType, bool hasBaseAmount)
        {
            OrderType typeParse;

            if (!Enum.TryParse <OrderType>(tradeType, out typeParse))
            {
                throw new OrderImportDataException();
            }

            if (typeParse == OrderType.Buy)
            {
                if (!hasBaseAmount)
                {
                    typeParse = OrderType.Deposit;
                }
            }
            else if (typeParse == OrderType.Sell)
            {
                if (!hasBaseAmount)
                {
                    typeParse = OrderType.Withdraw;
                }
            }
            else
            {
                throw new OrderImportDataException();
            }
            return(BaseOrder.CreateOrder(typeParse));
        }
Beispiel #3
0
        /// <summary>
        /// Gets and removes the first order from the order queue
        /// </summary>
        /// <returns>The first order from the queue</returns>
        public BaseOrder DequeueOrder()
        {
            //this is technically not safe, and should probably be changed back to a queue after i find a way to display the queue in the editor
            BaseOrder o = orderQueue[0];

            orderQueue.RemoveAt(0);
            return(o);
        }
Beispiel #4
0
 public BaseOrder Update(BaseOrder baseOrder)
 {
     using (var shopDbContext = ShopDbContext.GetInstance())
     {
         shopDbContext.BaseOrders.Update(baseOrder);
         shopDbContext.SaveChanges();
         return(baseOrder);
     }
 }
Beispiel #5
0
 public BaseOrder SaveAndFlush(BaseOrder baseOrder)
 {
     using (var shopDbContext = ShopDbContext.GetInstance())
     {
         shopDbContext.BaseOrders.Add(baseOrder);
         shopDbContext.SaveChanges();
         return(baseOrder);
     }
 }
Beispiel #6
0
        internal override JsonNewOrder GetJsonRequest()
        {
            BaseOrder.ClientOrderId = ClientOrderId;
            BaseOrder.ExtendedHours = ExtendedHours;
            BaseOrder.Duration      = Duration;

            return(BaseOrder.GetJsonRequest()
                   .WithOrderClass(OrderClass));
        }
Beispiel #7
0
        public void SearchForTarget(BaseOrder order)
        {
            if (IsMarkedForDeletion)
            {
                return;
            }

            SearchForTarget(order.SecondId, order.StringParameter, true);
        }
Beispiel #8
0
 /// <summary>Clears the order queue and sets the current order</summary>
 public void OverrideOrder(BaseOrder o)
 {
     orderQueue.Clear();
     if (currentOrder != null)
     {
         currentOrder.Cancel();
     }
     idle         = false;
     currentOrder = o;
 }
Beispiel #9
0
 /// <summary>
 /// Starts the actor panicing, pauses current orders and starts executing the given response order
 /// </summary>
 /// <param name="response">Response order</param>
 public void Panic(BaseOrder response)
 {
     if (!idle)
     {
         Debug.Log("Pausing order!");
         currentOrder.Pause();
         orderQueue.Insert(0, currentOrder);
     }
     currentOrder = response;
 }
Beispiel #10
0
        /// <summary>Changes to the given state</summary>
        public void GoToState(string state, ActorController actor)
        {
            if (!States.ContainsKey(state))
            {
                throw new ArgumentOutOfRangeException(nameof(state), $"Nonexistant order state: {state}");
            }

            OrderStateInfo info = States[state];

            currentState = state;
            currentOrder = info.StartState(actor);
        }
Beispiel #11
0
 public static ShipmentInfo CreateShipmentInfo(BaseOrder baseOrder)
 {
     return(new ShipmentInfo
     {
         FullName = baseOrder.FullName,
         PhoneNumber = baseOrder.PhoneNumber,
         City = baseOrder.City,
         PostalAddress = baseOrder.PostalAddress,
         Street = baseOrder.Street,
         HouseNumber = baseOrder.HouseNumber
     });
 }
Beispiel #12
0
        private void ProcessRequest(BaseOrder request)
        {
            Console.WriteLine("Recived request");
            var order = new Order(request.Id, request.Product, request.Customer)
            {
                ReplyTo = nameof(Order)
            };

            _outstandingOrders.Add(order);
            _bus.Publish(order, request.Customer.Country);
            Console.WriteLine("Published Request");
        }
Beispiel #13
0
        private void checkMoveEntity(double x, double y)
        {
            PositionDB target;

            _game.CurrentDateTime.AddSeconds(5.0);

            _ship.GetDataBlob <ShipInfoDB>().Orders.Clear();
            _player.Orders.ClearOrders();

            target = new PositionDB(_ship.GetDataBlob <PositionDB>());

            target.X += x;
            target.Y += y;

            _target.GetDataBlob <PositionDB>().X = target.X;
            _target.GetDataBlob <PositionDB>().Y = target.Y;

            _player.Orders.MoveOrder(_ship, _target);
            BaseOrder order = _player.Orders.PeekNextOrder();

            Assert.AreEqual(1, _player.Orders.NumOrders());

            OrderProcessor.Process(_game);

            Assert.AreEqual(0, _player.Orders.NumOrders());
            Assert.AreEqual(1, _ship.GetDataBlob <ShipInfoDB>().Orders.Count);

            Assert.Contains(order, _ship.GetDataBlob <ShipInfoDB>().Orders);

            OrderProcessor.ProcessShip(_ship);

            Assert.AreEqual(0, _player.Orders.NumOrders());
            Assert.AreEqual(1, _ship.GetDataBlob <ShipInfoDB>().Orders.Count);

            Assert.Contains(order, _ship.GetDataBlob <ShipInfoDB>().Orders);

            OrderProcessor.ProcessShip(_ship);

            // Check speed
            Vector4 speed = _shipPropulsionDB.CurrentSpeed;

            double length = Math.Sqrt((x * x) + (y * y));
            double speedX, speedY;

            // multiplier to modify overly slow speeds
            speedX = Distance.KmToAU((x / length) * _shipPropulsionDB.MaximumSpeed);
            speedY = Distance.KmToAU((y / length) * _shipPropulsionDB.MaximumSpeed);

            // Allowing for very small discrepancies
            Assert.LessOrEqual(Math.Abs(speedX - speed.X), 0.0001);
            Assert.LessOrEqual(Math.Abs(speedY - speed.Y), 0.0001);
        }
 /// <summary>Changes to the given state</summary>
 public void GoToState(string state, ActorController actor)
 {
     if (States.ContainsKey(state))
     {
         OrderStateInfo info = States[state];
         currentState = state;
         currentOrder = info.StartState(actor);
     }
     else
     {
         throw new ArgumentOutOfRangeException("Nonexistant order state: " + state);
     }
 }
Beispiel #15
0
        // Handles FixedUpdate event
        public virtual void FixedUpdate()
        {
            double           feedMe           = (double)(Time.fixedDeltaTime * 0.025f);
            var              logisticsManager = logisticsActor.logisticsManager;
            LogisticsNetwork network          = logisticsManager ? logisticsManager.FindNearestNetwork(transform.position) : null;

            if (network != null && network.Foodbuffer > feedMe)
            {
                network.Foodbuffer -= feedMe;
                health              = System.Math.Min(1, health + feedMe);
            }
            else
            {
                health -= feedMe;
            }

            if (health <= 0.0)
            {
                Destroy(gameObject);
                return;
            }

            if (currentOrder != null && currentOrder.Done)
            {
                currentOrder = null;
            }

            if (currentOrder == null)
            {
                if (orderQueue.Count > 0)
                {
                    currentOrder = DequeueOrder();
                    idle         = false;
                }
                else
                {
                    currentOrder = new IdleOrder(this);
                    idle         = true;
                }
            }

            currentOrder.Update(this);
            queueLength = orderQueue.Count;
        }
Beispiel #16
0
 public OrderPosition(BaseOrder baseOrder, List <OrderEvent> orderEvents)
 {
     BaseOrder   = baseOrder;
     OrderEvents = orderEvents;
 }
Beispiel #17
0
 /// <summary>Adds an order to the pending order queue</summary>
 public void EnqueueOrder(BaseOrder o)
 {
     orderQueue.Add(o);
     //orderQueue.Enqueue(o);
 }
Beispiel #18
0
        /// <summary>
        /// Constructs an order from the orderTag against the given target,
        /// and assigns it to all selected actors
        /// </summary>
        public void IssueOrder(CommandType orderTag, NeolithicObject target)
        {
            var actors = selected.Select(go => go.GetComponent <ActorController>()).Where(a => a != null);

            foreach (var actor in actors)
            {
                BaseOrder newOrder = null;
                switch (orderTag)
                {
                case CommandType.ChopWood:
                case CommandType.MineGold:
                case CommandType.MineStone:
                case CommandType.Forage:
                    newOrder = new HarvestFromReservoirOrder(actor, target);
                    break;

                case CommandType.ChuckWood:
                    newOrder = new TransmuteOrder(actor, target, ResourceKind.Wood, ResourceKind.Gold);
                    break;

                case CommandType.Meditate:
                    newOrder = new MeditateOrder(actor, target);
                    break;

                case CommandType.Hunt:
                    newOrder = new HuntOrder(actor, target.GetComponentInParent <Herd>());
                    break;

                case CommandType.Fish:
                    newOrder = new FishOrder(actor, target);
                    break;

                case CommandType.Construct:
                    newOrder = new ConstructOrder(actor, target);
                    break;

                case CommandType.TearDown:
                    newOrder = new TearDownOrder(actor, target);
                    break;

                case CommandType.ForestGarden:
                    var prefab = (GameObject)Resources.Load("Buildings/ForestGarden");
                    if (prefab == null)
                    {
                        throw new InvalidOperationException("Can't find prefab");
                    }
                    newOrder = new UpgradeReservoirOrder(actor, target, prefab);
                    break;

                default:
                    throw new InvalidOperationException("Unrecognized order tag " + orderTag);
                }

                Factory.InjectObject(newOrder);
                if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
                {
                    actor.EnqueueOrder(newOrder);
                }
                else
                {
                    actor.OverrideOrder(newOrder);
                }
            }
        }
 internal override JsonNewOrder GetJsonRequest() =>
 BaseOrder.GetJsonRequest()
 .WithOrderClass(OrderClass);
Beispiel #20
0
 public T HandleOrder(BaseOrder order)
 {
     return(OrderDispatcher[order.GetType()](order));
 }
Beispiel #21
0
 internal override Boolean IsQuantityInvalid() =>
 BaseOrder.IsQuantityInvalid();
 public OrderViewModel(BaseOrder order)
     : this()
 {
     _order = order;
 }
        private static BaseOrder ImportOrder(string importString)
        {
            string[]  orderData = importString.Split(new char[] { ',' }, StringSplitOptions.None);
            BaseOrder newOrder  = CreateOrder(orderData[1], !string.IsNullOrWhiteSpace(orderData[3]));

            Currency coinParse;
            decimal  amountParse;
            Location locationParse;

            // Parse the order instant
            newOrder.OrderInstant = DateTime.Parse(orderData[0]);

            // Parse the trading location
            if (!Enum.TryParse <Location>(orderData[7], out locationParse))
            {
                throw new OrderImportDataException();
            }
            newOrder.Location = locationParse;

            // Parse the trade currency type
            if (!Enum.TryParse <Currency>(orderData[4], out coinParse))
            {
                throw new OrderImportDataException();
            }
            newOrder.TradeCurrency = coinParse;

            // Parse the trade amount (used for deposits/withdrawals as well)
            if (!decimal.TryParse(orderData[5], out amountParse))
            {
                throw new OrderImportDataException();
            }
            newOrder.TradeAmount = amountParse;

            // Extra parsing for buy/sell orders
            if (newOrder is ExchangeOrder)
            {
                ExchangeOrder newExchangeOrder = (ExchangeOrder)newOrder;

                // Parse the base currency type
                if (!Enum.TryParse <Currency>(orderData[2], out coinParse))
                {
                    throw new OrderImportDataException();
                }
                newExchangeOrder.BaseCurrency = coinParse;

                // Parse the base amount
                if (!decimal.TryParse(orderData[3], out amountParse))
                {
                    throw new OrderImportDataException();
                }
                newExchangeOrder.BaseAmount = amountParse;

                // Parse the fee amount (stored in the base currency)
                if (!decimal.TryParse(orderData[6], out amountParse))
                {
                    throw new OrderImportDataException();
                }
                newExchangeOrder.BaseFee = amountParse;
            }

            return(newOrder);
        }
 public OrderViewModel(OrderType type)
     : this(BaseOrder.CreateOrder(type))
 {
 }
 public OrderViewModel(OrderViewModel orderVM)
     : this(BaseOrder.CreateOrder(orderVM.Order))
 {
 }
        /// <summary>
        /// Applies a series of orders on an IQueryable.
        /// </summary>
        /// <typeparam name="T">The entity that you are ordering.</typeparam>
        /// <param name="queryable">An IQueryable of type T entity.</param>
        /// <param name="baseOrder">An order object that will apply a series of orders.</param>
        /// <returns>An IOrderedQueryable of type T.</returns>
        public static IOrderedQueryable <T> NPredicateBuilderEFOrder <T>(this IQueryable <T> queryable, BaseOrder <T> baseOrder)
        {
            if (baseOrder.FirstOrder == null)
            {
                throw new ArgumentNullException(nameof(queryable));
            }

            var orderedEntities = baseOrder.FirstOrder.Order(queryable);

            foreach (var orderer in baseOrder.SecondaryOrders)
            {
                orderedEntities = orderer.Order(orderedEntities);
            }

            return(orderedEntities);
        }
Beispiel #27
0
        public void AutomaticFormationOrderTest()
        {
            GameManager.Instance.Log.LogDebug("Running test AutomaticFormationOrderTest().");
            Player player = new Player();

            player.Name             = "GoodGuy";
            player.IsComputerPlayer = true;
            Player playerEnemy = new Player();

            playerEnemy.Name             = "BadGuy";
            playerEnemy.IsComputerPlayer = true;

            Group group = new Group();

            GameManager.Instance.GameData.InitAllData();
            Game game = GameManager.Instance.CreateGame(player, "test game");

            game.Players.Add(player);
            game.Players.Add(playerEnemy);

            GameManager.Instance.Game.SetAllPlayersEnemies();

            GameManager.Instance.GameData.InitAllData();
            GameManager.Instance.CreateGame(player, "test game");
            Position pos      = new Position(60, 3, 0, 45);
            BaseUnit unitMain = GameManager.Instance.GameData.CreateUnit(player, group, "arleighburke", "lead",
                                                                         pos, true);
            BaseUnit unit1 = GameManager.Instance.GameData.CreateUnit(player, group, "arleighburke", "follow1",
                                                                      pos.Offset(30, 300), true);
            BaseUnit unit2 = GameManager.Instance.GameData.CreateUnit(player, group, "arleighburke", "follow2",
                                                                      pos.Offset(120, 400), true);

            unitMain.MovementOrder.AddWaypoint(new Waypoint(new Position(61.0, 4.0)));
            unitMain.SetActualSpeed(40.0);
            Assert.IsTrue(unitMain.GetActiveWaypoint() != null, "ActiveWaypoint should not be null.");

            group.AutoAssignUnitsToFormation();

            game.IsNetworkEnabled = false;

            ScheduledOrder sched      = new ScheduledOrder(1);
            var            innerOrder = new BaseOrder(unit1.OwnerPlayer, GameConstants.OrderType.SetSpeed);

            innerOrder.UnitSpeedType = GameConstants.UnitSpeedType.Slow;
            sched.Orders.Add(innerOrder);
            unit1.Orders.Enqueue(sched);
            GameManager.Instance.Game.RunGameInSec = 1;
            GameManager.Instance.Game.StartGamePlay();
            unitMain.ReCalculateEta();
            unit1.ReCalculateEta();
            unit2.ReCalculateEta();

            Assert.IsTrue(unit1.MovementOrder is MovementFormationOrder, "Unit 1 should have a movement formation order.");
            Assert.IsTrue(unit2.MovementOrder is MovementFormationOrder, "Unit 2 should have a movement formation order.");
            Assert.IsFalse(unitMain.MovementOrder is MovementFormationOrder, " MainUnit should NOT have movement formation order.");


            unitMain.HitPoints           = 0;
            unitMain.IsMarkedForDeletion = true;
            group.AutoAssignUnitsToFormation();
            //GameManager.Instance.Game.RunGameInSec = 1;
            //GameManager.Instance.Game.StartGamePlay();

            Assert.IsTrue(group.MainUnit.Id == unit1.Id, "Unit 1 should now be main unit.");
            Assert.IsFalse(unit1.MovementOrder is MovementFormationOrder, "Unit 1 should NOT have a movement formation order.");
            Assert.IsTrue(unit2.MovementOrder is MovementFormationOrder, "Unit 2 should still have a movement formation order.");
            var activeWp = unit1.GetActiveWaypoint();

            Assert.IsTrue(activeWp != null, "Unit 1 should have an ActiveWaypoint.");


            GameManager.Instance.TerminateGame();
        }
 public OrderVMComparer(OrderSortType sortBy, ListSortDirection sortDir, bool uniqueSort)
 {
     BaseOrder.SetComparisonParameters(sortBy, sortDir, uniqueSort);
 }
Beispiel #29
0
        static void Main(string[] args)
        {
            //K-d1b145144afec7e52afd98ab18fcdd3b5d9ce6c8
            //S-b457848406b1cebaa503782234048dade4e92e42
            //ExmoCryptoExchenge ex = new ExmoCryptoExchenge();
            //ex.SetAutentification("K-d1b145144afec7e52afd98ab18fcdd3b5d9ce6c8", "S-b457848406b1cebaa503782234048dade4e92e42");
            //List<CriptoExchengLib.Interfaces.ICurrencyPair> cps = new List<CriptoExchengLib.Interfaces.ICurrencyPair>();
            //BaseCurrencyPair cp = new BaseCurrencyPair("BTC_USD");
            //cps.Add(cp);
            //ex.GetCurrencyPair();
            //BaseOrder bo = new BaseOrder();
            //bo.Pair = new BaseCurrencyPair("BTC_USD");
            //bo.Price = 0;
            //bo.Quantity = 0;
            //bo.Type = BaseOrderType.Buy;
            //ex.PostOrder(bo);
            //ex.GetOrderStatus(12345);
            //ex.GetAccountsList();
            //ex.GetHistoryRecords(DateTime.Now);
            //ex.GetOrdersHistory(cp,100);
            //string json = JsonConvert.SerializeObject(ex.GetBookWarrants(cps, 10), Formatting.Indented);
            //Console.WriteLine(json);

            //nead fix error
            BitfinexCryptoExchenge bf = new BitfinexCryptoExchenge();

            bf.SetAutentification("Za8bnEr09Q45b6y5Ri7fq71UKoCHByMR7LMr4XqRO9g", "zI3lrqhbNUXTxHaxui3w816Tl3WxorgtrZPqHKml3e1");
            //List<BaseCurrencyPair> cps = new List<BaseCurrencyPair>();
            ////BaseCurrencyPair bc = new BaseCurrencyPair("tBTCUSD");
            ////cps.Add(bc);
            ////bf.GetBookWarrants(cps,100);
            ////bf.GetCurrencyPair();
            BaseOrder bo = new BaseOrder();

            bo.Pair     = new BaseCurrencyPair("tBTCUSD");
            bo.Price    = 0;
            bo.Quantity = 0;
            bo.Type     = BifinexOrderType.Exchange_fok;
            bf.PostOrder(bo);
            //bf.CanselOrder(1);
            //Console.ReadKey();
            //List<BaseCurrencyPair> cps = new List<BaseCurrencyPair>();
            //BaseCurrencyPair cp = new BaseCurrencyPair("ADACAD");
            //cps.Add(cp);
            //KrakenCryptoExchenge kc = new KrakenCryptoExchenge();
            //kc.SetAutentification("OIav92RTeccxQp4zrM6SH3RN07jEyk3POiPByg/54w1wToBRTtVz3120", "eDxzDp0LL1JQhK+pJF2MYbNz+B/WA203vg76PNtAqnT+zgpURWGO/t/S0aqhO1plyIs3OgNjRaHbk0cwkk6prw==");
            //kc.GetCurrencyPair();
            //kc.GetBookWarrants(cps, 100);
            //AddOrder("ADACAD","buy","limit",1,1,1);
            //KrakenOrder ko = new KrakenOrder();
            //ko.Pair = new BaseCurrencyPair("ADACAD");
            //ko.Type = KrakenOrderType.Buy;
            //ko.Ordertype = KrakenOrderType.Limit;
            //ko.Price = 1;
            //ko.Quantity = 1;
            //kc.PostOrder(ko);
            //kc.CanselOrder(10);
            //kc.GetOrderStatus(10);
            // kc.GetAccountsList();

            //BinanceCryptoExchenge bce = new BinanceCryptoExchenge();
            //bce.SetAutentification("IYTZ2ugTwRN3FjfGSWc7GXkiR4unBiPhLtTlx31oUWfAnAvmW6VCj8r9fqYO878k", "g4VYUr1TCGfQLNhq0jSAtFCsXbgLww7Xjjd9BFrleFCi1TeRK2DD26WFZdrknCiu");
            //List<BaseCurrencyPair> cps = new List<BaseCurrencyPair>();
            //BaseCurrencyPair bc = new BaseCurrencyPair("BNBBTC");
            //cps.Add(bc);
            //bce.GetBookWarrants(cps,500);
            //bce.GetCurrencyPair();
            //BinanceOrder bo = new BinanceOrder();
            //bo.Pair = new BaseCurrencyPair("LTCBTC");
            //bo.Side = BinanceOrderType.Buy;
            //bo.Type = BinanceOrderType.Limit;
            //bo.Quantity = 1;
            //bo.Price = 1;
            //bo.TimeInForce = TimeInForce.GTC;
            //bce.PostOrder(bo);
            //bce.CanselOrder(new BaseCurrencyPair("LTCBTC"),10);
            //bce.GetAccountsList();
            //bce.GetOrdersHistory(new BaseCurrencyPair("LTCBTC"), 100);
        }