public void available_for_purchase_is_false_for_basic_property()
        {
            var owner = new Trader();
            var property = new Property("Test Property", ref owner);

            Assert.IsFalse(property.AvailableForPurchase());
        }
        public void constructorTest()
        {
            Trader t2 = new Trader("Player2", 1500);

            Assert.AreEqual(t2.getName(), "Player2");
            Assert.AreEqual(t2.getBalance(), 1500);
        }
Beispiel #3
0
 public DeliverGoods(Actor self)
 {
     trader = self.Trait<Trader>();
     traderInfo = self.Info.Traits.Get<TraderInfo>();
     move = self.Trait<IMove>();
     pathFinder = self.World.WorldActor.Trait<IPathFinder>();
 }
        public void to_string_has_correct_output()
        {
            var trader = new Trader("Josh", 500);

            const string expected = "Name: Josh \nBalance: 500";

            var actual = trader.ToString();

            Assert.AreEqual(expected, actual);
        }
Beispiel #5
0
        private static void StartTrading()
        {
            // setup traders
            var t1 = new Trader (20000);
            var t2 = new Trader (30000);
            var t3 = new Trader (100000);
            var t4 = new Trader (5000);
            var t5 = new Trader (1000);

            // spin off threads for trades
            // todo
        }
 public void checkBankruptNegative()
 {
     Trader t = new Trader("Player1", -100);
     try
     {
         t.checkBankrupt();//exception should be thrown so should not run follwing line
         Assert.Fail();
     }
     catch (Exception ex)
     {
         Console.Write("Exception Thrown: " + ex.Message);
     }
 }
        public void checkBankrupt()
        {
            Trader t = new Trader("Player1", 1500);

            try
            {
                t.checkBankrupt();//nothing should happen (no exception thrown)

            }
            catch (Exception ex)
            {
                Console.Write("Exception Thrown: " + ex.Message);
                Assert.Fail();
            }
        }
        public ActionResult Edit(Trader trader)
        {
            if (ModelState.IsValid)
            {
                trader.Number      = (trader.Weight * trader.NumberOfOne) / 1000;
                trader.PricePerOne = db.FreezerCeteogries.Find(trader.cat_Id).PricePerTon;
                trader.Change      = (trader.Number * db.FreezerCeteogries.Find(trader.cat_Id).PricePerTon) - trader.Cash;

                db.Entry(trader).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.FrID   = new SelectList(db.Fridages, "Fr_id", "Fr_Name");
            ViewBag.cat_Id = new SelectList(db.FreezerCeteogries, "id", "Type", trader.cat_Id);
            //     ViewBag.PeriodId = new SelectList(db.periods.Where(x => x.isActive), "Id", "PeriodName", trader.PeriodId);


            return(View(trader));
        }
Beispiel #9
0
        /// <summary>
        /// Creates a buy order on the exchange.
        /// </summary>
        /// <param name="freeTrader">The trader placing the order</param>
        /// <param name="pair">The pair we're buying</param>
        /// <returns></returns>
        private async Task <Trade> CreateBuyOrder(Trader freeTrader, string pair)
        {
            // Take the amount to invest per trader OR the current balance for this trader.
            var btcToSpend = freeTrader.CurrentBalance > Constants.AmountOfBtcToInvestPerTrader
                ? Constants.AmountOfBtcToInvestPerTrader
                : freeTrader.CurrentBalance;

            // The amount here is an indication and will probably not be precisely what you get.
            var ticker = await _api.GetTicker(pair);

            var openRate     = GetTargetBid(ticker);
            var amount       = btcToSpend / openRate;
            var amountYouGet = (btcToSpend * (1 - Constants.TransactionFeePercentage)) / openRate;

            // Get the order ID, this is the most important because we need this to check
            // up on our trade. We update the data below later when the final data is present.
            var orderId = await _api.Buy(pair, amount, openRate);

            await SendNotification($"Buying {pair} at {openRate:0.0000000 BTC} which was spotted at bid: {ticker.Bid:0.00000000}, " +
                                   $"ask: {ticker.Ask:0.00000000}, " +
                                   $"last: {ticker.Last:0.00000000}, " +
                                   $"({amountYouGet:0.0000} units).");

            return(new Trade()
            {
                TraderId = freeTrader.RowKey,
                Market = pair,
                StakeAmount = btcToSpend,
                OpenRate = openRate,
                OpenDate = DateTime.UtcNow,
                Quantity = amountYouGet,
                OpenOrderId = orderId,
                BuyOrderId = orderId,
                IsOpen = true,
                IsBuying = true,
                StrategyUsed = _strategy.Name,
                PartitionKey = "TRADE",
                SellType = SellType.None,
                RowKey = $"MNT{(DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks):d19}"
            });
        }
        protected override void OnItemMoved(Trader trader, TradeItem item, bool modified, int difference)
        {
            if (trader == Crafter)
            {
                base.OnItemMoved(trader, item, modified, difference);

                if (!modified && item.Stack > 0)
                {
                    InventoryHandler.SendExchangeObjectAddedMessage(Crafter.Character.Client, Crafter != trader, item);
                    InventoryHandler.SendExchangeObjectAddedMessage(Receiver.Character.Client, Receiver != trader, item);
                }
                else if (item.Stack <= 0)
                {
                    InventoryHandler.SendExchangeObjectRemovedMessage(Crafter.Character.Client, Crafter != trader, item.Guid);
                    InventoryHandler.SendExchangeObjectRemovedMessage(Receiver.Character.Client, Receiver != trader, item.Guid);
                }
                else
                {
                    InventoryHandler.SendExchangeObjectModifiedMessage(Crafter.Character.Client, Crafter != trader, item);
                    InventoryHandler.SendExchangeObjectModifiedMessage(Receiver.Character.Client, Receiver != trader, item);
                }
            }
            else
            {
                if (!modified && item.Stack > 0)
                {
                    InventoryHandler.SendExchangeObjectPutInBagMessage(Crafter.Character.Client, Crafter != trader, item);
                    InventoryHandler.SendExchangeObjectPutInBagMessage(Receiver.Character.Client, Receiver != trader, item);
                }
                else if (item.Stack <= 0)
                {
                    InventoryHandler.SendExchangeObjectRemovedFromBagMessage(Crafter.Character.Client, Crafter != trader, item.Guid);
                    InventoryHandler.SendExchangeObjectRemovedFromBagMessage(Receiver.Character.Client, Receiver != trader, item.Guid);
                }
                else
                {
                    InventoryHandler.SendExchangeObjectModifiedInBagMessage(Crafter.Character.Client, Crafter != trader, item);
                    InventoryHandler.SendExchangeObjectModifiedInBagMessage(Receiver.Character.Client, Receiver != trader, item);
                }
            }
        }
Beispiel #11
0
        /// <summary>ArchiveChildrens a Blotter record.</summary>
        /// <param name="transaction">Commits or rejects a set of commands as a unit</param>
        /// <param name="rowVersion">the version number of this row.</param>
        /// <param name="blotterId">The value for the BlotterId column.</param>
        /// <param name="archive">true to archive the object, false to unarchive it.</param>
        internal static void ArchiveChildren(AdoTransaction adoTransaction, SqlTransaction sqlTransaction, long rowVersion, int blotterId)
        {
            // Accessor for the Blotter Table.
            ServerMarketData.BlotterDataTable blotterTable = ServerMarketData.Blotter;
            // This record can be used to iterate through all the children.
            ServerMarketData.BlotterRow blotterRow = blotterTable.FindByBlotterId(blotterId);
            // Archive the child records.
            for (int index = 0; (index < blotterRow.GetBranchRows().Length); index = (index + 1))
            {
                ServerMarketData.BranchRow childBranchRow = blotterRow.GetBranchRows()[index];
                Branch.ArchiveChildren(adoTransaction, sqlTransaction, childBranchRow.RowVersion, childBranchRow.BranchId);
            }
            for (int index = 0; (index < blotterRow.GetSourceRows().Length); index = (index + 1))
            {
                ServerMarketData.SourceRow childSourceRow = blotterRow.GetSourceRows()[index];
                Source.ArchiveChildren(adoTransaction, sqlTransaction, childSourceRow.RowVersion, childSourceRow.SourceId);
            }
            for (int index = 0; (index < blotterRow.GetTraderRows().Length); index = (index + 1))
            {
                ServerMarketData.TraderRow childTraderRow = blotterRow.GetTraderRows()[index];
                Trader.ArchiveChildren(adoTransaction, sqlTransaction, childTraderRow.RowVersion, childTraderRow.TraderId);
            }
            for (int index = 0; (index < blotterRow.GetWorkingOrderRows().Length); index = (index + 1))
            {
                ServerMarketData.WorkingOrderRow childWorkingOrderRow = blotterRow.GetWorkingOrderRows()[index];
                WorkingOrder.Archive(adoTransaction, sqlTransaction, childWorkingOrderRow.RowVersion, childWorkingOrderRow.WorkingOrderId);
            }
            // Increment the row version
            rowVersion = ServerMarketData.RowVersion.Increment();
            // Delete the record in the ADO database.
            blotterRow[blotterTable.RowVersionColumn] = rowVersion;
            adoTransaction.DataRows.Add(blotterRow);
            blotterRow.Delete();
            // Archive the record in the SQL database.
            SqlCommand sqlCommand = new SqlCommand("update \"Blotter\" set \"IsArchived\" = 1 where \"BlotterId\"=@blotterId");

            sqlCommand.Connection  = sqlTransaction.Connection;
            sqlCommand.Transaction = sqlTransaction;
            sqlCommand.Parameters.Add(new SqlParameter("@blotterId", SqlDbType.Int, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, blotterId));
            sqlCommand.ExecuteNonQuery();
        }
Beispiel #12
0
        public static int GetClosableCount(this Trader t, string code, TradeDirectType dir)
        {
            try
            {
                var p = t.GetPositionSummary(code, PositionType.权利仓);
                if (p == null)
                {
                    return(0);
                }

                if (p.PositionType == "权利仓" && dir == TradeDirectType.买)
                {
                    return(0);
                }
                if (p.PositionType == "义务仓" && dir == TradeDirectType.卖)
                {
                    return(0);
                }


                if (t.Orders() == null || t.Orders().Count == 0)
                {
                    return(p.Count);
                }
                var tl = t.Orders();
                if (tl == null)
                {
                    return(p.Count);
                }
                var c = tl.GetCloseCount(code, dir);

                var r = p.Count - c;
                return(r);
            }
            catch (Exception e)
            {
                Singleton <TextLog> .Instance.Error(e, "getclosablecountextension");

                return(0);
            }
        }
Beispiel #13
0
        private static void LoadTradersFromNodes(XmlNodeList nodes)
        {
            foreach (XmlNode node in nodes)
            {
                var trader = new Trader(node.AttributeAsInt("ID"), node.SelectSingleNode("./Name")?.InnerText ?? "");

                foreach (XmlNode childNode in node.SelectNodes("./InventoryItems/Item"))
                {
                    int quantity = childNode.AttributeAsInt("Quantity");

                    // Create a new GameItem object for each item we add.
                    // This is to allow for unique items, like swords with enchantments.
                    for (int i = 0; i < quantity; i++)
                    {
                        trader.AddItemToInventory(ItemFactory.CreateGameItem(childNode.AttributeAsInt("ID")));
                    }
                }

                _traders.Add(trader);
            }
        }
Beispiel #14
0
        public void SubmitTrader()
        {
            Trader trader = null;
            int    id     = 0;
            var    dbName = "SubmitTrader";

            "Given I have a new trader".x(() => trader = TestTradeDataStatic.MargamanTrader);

            "When I submit the trader".x(async() =>
            {
                var traderRepository = new TraderRepository(CreateNewContext(dbName));
                await traderRepository.New(trader);
                id = trader.Id;
            });

            "Then the trader is displayed".x(async() =>
            {
                var traderRepository = new TraderRepository(CreateNewContext(dbName));
                AssertTrader(await traderRepository.Get(id), trader);
            });
        }
Beispiel #15
0
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var tradedToUser = Data.Species;
            var message      = tradedToUser != 0 ? $"Trade finished. Enjoy your {(Species)tradedToUser}!" : "Trade finished!";

            Trader.SendMessageAsync(message).ConfigureAwait(false);
            if (result.Species != 0 && Hub.Config.Discord.ReturnPK8s)
            {
                Trader.SendPKMAsync(result, "Here's what you traded me!").ConfigureAwait(false);
            }

            if (info.Type == PokeTradeType.TradeCord)
            {
                var user       = Trader.Id.ToString();
                var origPath   = TradeExtensions.TradeCordPath.FirstOrDefault(x => x.Contains(user));
                var tradedPath = System.IO.Path.Combine($"TradeCord\\Backup\\{user}", origPath.Split('\\')[2]);
                System.IO.File.Move(origPath, tradedPath);
                TradeExtensions.TradeCordPath.Remove(origPath);
            }
        }
Beispiel #16
0
        public IActionResult Trader([FromForm] Trader trader, PerfilTrader perfil)
        {
            Login login = new Login();

            login            = _loginUsuario.GetLogin(login);
            trader.UsuarioID = login.UsuarioID;
            List <Trader> traders = new List <Trader>();

            traders.Add(trader);
            foreach (Trader t in traders)
            {
                trader = t;
            }
            if (perfil.Nome.Equals(trader.PerfilTrader))
            {
                trader.PerfilTraderID = perfil.PerfilTraderID;
            }
            _traderRep.InserirDadosTrader(trader);
            //MENSAGEM TRADER INSERIDO
            return(View());
        }
        private static void LoadTradersFromNodes(XmlNodeList nodes)
        {
            foreach (XmlNode node in nodes)
            {
                Trader trader =
                    new Trader(node.AttributeAsInt("ID"),
                               node.SelectSingleNode("./Name")?.InnerText ?? "");

                foreach (XmlNode childNode in node.SelectNodes("./InventoryItems/Item"))
                {
                    int quantity = childNode.AttributeAsInt("Quantity");

                    for (int i = 0; i < quantity; i++)
                    {
                        trader.AddItemToInventory(ItemFactory.CreateGameItem(childNode.AttributeAsInt("ID")));
                    }
                }

                _traders.Add(trader);
            }
        }
Beispiel #18
0
 /// <summary>
 /// 计算平仓比率:需要平仓的份数
 /// 每份合约得到的资金数=释放的维持保证金-买入价格
 /// </summary>
 /// <param name="up"></param>
 /// <returns></returns>
 decimal CalRatio(Trader t, PositionSummary up, decimal needed)
 {
     try
     {
         if (up == null)
         {
             Log.Info(string.Format("计算比例时合约为空:仓{0}-人{1}", up.CName, t.Name));
             return(0);
         }
         var cp = Market.Get(up.CName).NewestDealPrice;
         var pp = up.GetReleasePerPos((a) => { return(model.Contracts.Where(c => c.Code == a).FirstOrDefault()); }, cp);
         var r  = needed / pp;
         Log.Info(string.Format("平仓份数:{0}-{1}-价{2}-释{3}-份{4}", t.Name, up.CName, cp, pp, r));
         return(r);
     }
     catch (Exception ex)
     {
         Log.Error(ex);
         return(0);
     }
 }
Beispiel #19
0
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj))
            {
                return(false);
            }
            if (ReferenceEquals(this, obj))
            {
                return(true);
            }
            if (obj.GetType() != this.GetType())
            {
                return(false);
            }

            BoxedPosition other = (BoxedPosition)obj;

            return(Trader.Equals(other.Trader) &&
                   Symbol.Equals(other.Symbol) &&
                   Qty.Equals(other.qty));
        }
        public void MainLoop()
        {
            while (true)
            {
                Decision = Refreash();
                if (Trader.CheckTrad(Decision, Ticker.CurrentValue) == ExchangeStatus.buy && firstBuyFlag)
                {
                    firstBuyFlag = false;
                }
                RefreashedEventArgs refreashEA = new RefreashedEventArgs(Ticker.CurrentValue, Ticker.LastValue, Ticker.Status, Decision,
                                                                         Trader.CurrentBitcoinNum, Trader.CurrentCashNum);
                onRefreash(refreashEA);
                if (IsAlert && ((AlertUpper != 0 && Ticker.CurrentValue >= AlertUpper) || (AlertLower != 0 && Ticker.CurrentValue <= AlertLower)))
                {
                    AlertEventArgs alertEA = new AlertEventArgs(Ticker.CurrentValue, AlertUpper, AlertLower);
                    alerted(alertEA);
                }

                Thread.Sleep((int)SleepTime);
            }
        }
Beispiel #21
0
        public static decimal TransBonus(Trader t, List <string> invitedNames)
        {
            if (t == null || invitedNames == null || invitedNames.Count == 0)
            {
                return(0);
            }
            decimal result = 0;

            foreach (var v in invitedNames)
            {
                if (string.IsNullOrEmpty(v))
                {
                    continue;
                }

                bool r = TraderService.OperateInvitorBonus(t, InvitorBonusInCny, "被推荐人" + v);
                result += InvitorBonusInCny;
                log.Info(string.Format("{0}成功推荐了{1},获取奖金{2}元", t.Name, v, InvitorBonusInCny));
            }
            return(result);
        }
Beispiel #22
0
        static TraderFactory()
        {
            Trader susan = new Trader("Susan");

            susan.AddItemToInventory(ItemFactory.CreateGameItem(1001));
            susan.AddItemToInventory(ItemFactory.CreateGameItem(1003));
            susan.AddItemToInventory(ItemFactory.CreateGameItem(1004));

            Trader farmerTed = new Trader("Farmer Ted");

            farmerTed.AddItemToInventory(ItemFactory.CreateGameItem(1001));

            Trader peteTheHerbalist = new Trader("Pete the Herbalist");

            peteTheHerbalist.AddItemToInventory(ItemFactory.CreateGameItem(1001));
            peteTheHerbalist.AddItemToInventory(ItemFactory.CreateGameItem(1001));

            AddTraderToList(susan);
            AddTraderToList(farmerTed);
            AddTraderToList(peteTheHerbalist);
        }
    /// <summary>
    /// Display the TradeDialogBox and allow the user to trade.
    /// </summary>
    /// <param name="tradeShip"></param>
    public void ShowTradeDialogBox(TraderShipController tradeShip)
    {
        DialogBoxManager dbm = GameObject.Find("Dialog Boxes").GetComponent <DialogBoxManager>();

        Trader playerTrader = Trader.FromPlayer(World.Current.Wallet[tradeShip.Trader.Currency.Name]);
        Trade  trade        = new Trade(playerTrader, tradeShip.Trader);

        dbm.dialogBoxTrade.SetupTrade(trade);
        dbm.dialogBoxTrade.TradeCancelled = () =>
        {
            tradeShip.TradeCompleted = true;
            TradeShips.Remove(tradeShip);
        };
        dbm.dialogBoxTrade.TradeCompleted = () =>
        {
            tradeShip.TradeCompleted = true;
            TrasfertTradedItems(trade, tradeShip.LandingCoordinates);
            TradeShips.Remove(tradeShip);
        };
        dbm.dialogBoxTrade.ShowDialog();
    }
Beispiel #24
0
        public IEnumerable <ClientForTraders> ClientsForTrader(int id, string filter)
        {
            TraderService.CheckCredentials(id);
            Trader trader = TraderService.FindEntity(id);

            TraderService.CollectCl(trader);
            var ret = new List <ClientForTraders>();
            Func <ClientForTraders, bool> test = filter.ToTest <ClientForTraders>();

            foreach (CommercialLink cl in trader.CommercialLink)
            {
                PrivateClient    privateClient   = ClientService.EntityToDTO(cl.Client);
                ClientForTraders clientForTrader = privateClient.CastAs <ClientForTraders>();
                clientForTrader.CommercialRelation = ClService.GetClStatus(cl);
                if (test(clientForTrader))
                {
                    ret.Add(clientForTrader);
                }
            }
            return(ret);
        }
        public async Task <ActionResult <string> > Put([FromBody] TraderToUpdate trader)
        {
            Trader traderToUpdate = null;

            try
            {
                traderToUpdate = contextProvider.Traders.Find(trader.TraderId);
            }
            catch
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (traderToUpdate != null || trader != null)
            {
                traderToUpdate.FirstName   = trader.FirstName;
                traderToUpdate.LastName    = trader.LastName;
                traderToUpdate.PhoneNumber = trader.PhoneNumber;
            }
            else
            {
                return(BadRequest());
            }

            try
            {
                contextProvider.SaveChanges();
            }
            catch (Exception)
            {
                return(BadRequest());
            }

            return("Trader updated");
        }
Beispiel #26
0
 /// <summary>
 /// 如果是平仓,直接支付;否则检查保证金是否足够
 /// </summary>
 /// <param name="t"></param>
 /// <param name="delta"></param>
 /// <param name="m"></param>
 /// <param name="o"></param>
 /// <returns></returns>
 public static bool BailPay(this Trader t, decimal delta, Market m, Order o, AccountChangeType type)
 {
     lock (t.Account.BailAccount)
     {
         SystemAccount.Instance.Log.Info(string.Format("支付(可能借款):{0}-线程{1}-委托{2}", DateTime.Now.ToString("HH:mm:ss.fff"),
                                                       Thread.CurrentThread.ManagedThreadId, o == null?"":o.Id.ToString()));
         if (o != null && o.OrderType == OrderType.平仓)
         {
             //系统借款记录处理
             if (t.Account.BailAccount.Sum < delta)
             {
                 var needed       = delta * (TraderService.CommissionRatio + 1) - t.Account.BailAccount.Sum;
                 var borrowResult = SystemAccount.Instance.Borrow(needed, o);
             }
             var r = t.Account.BailAccount.Sub(delta);
             TraderService.OperateAccount(t, delta, type, "system", o, t.Account.BailAccount.Total);
             return(r);
         }
         else
         {
             var maintain = GetMaintain(t, m);
             var remain   = t.Account.BailAccount.Sum - maintain;
             if (t.Account.BailAccount.Sum < delta || remain < delta)
             {
                 //执行保证金自动转入
                 var d1 = delta - t.Account.BailAccount.Sum;
                 var d2 = delta - remain;
                 var d  = d1 >= d2 ? d1 : d2;
                 var tr = TraderService.OperateAddBailFromCache(t, d, o);
                 if (!tr)
                 {
                     return(false);
                 }
             }
             var r = t.Account.BailAccount.Sub(delta);//划转保证金
             TraderService.OperateAccount(t, delta, type, "system", o, t.Account.BailAccount.Total);
             return(r);
         }
     }
 }
        public ActionResult Index()
        {
            Trader loggedInUser = GetLoggedTraderOrUser();

            if (loggedInUser != null)   // if not admin
            {
                int userType = loggedInUser.TypeFlag;
                if (userType == 1)
                {
                    var um = new UserManager <ApplicationUser>(
                        new UserStore <ApplicationUser>(new ApplicationDbContext()));
                    var user = um.FindById(User.Identity.GetUserId());

                    if (user.MainUser)
                    {
                        return(EditSuperTraderProfile());
                    }
                    else
                    {
                        return(View("../Redirector/NoPermissionToEditProfile"));
                    }
                }
                else if (userType == 2)
                {
                    return(EditTraderProfile());
                }
                else if (userType == 3)
                {
                    return(EditUserProfile());
                }
                else
                {
                    return(View());
                }
            }
            else
            {
                return(View("../Redirector/NoPermissionToEditProfile"));
            }
        }
        /// <summary>
        /// call this to open a dialog to formulate a new trade
        /// </summary>
        /// <param name="gameData"></param>
        /// <param name="client"></param>
        /// <param name="ID"></param>
        /// <param name="targetID"></param>
        public TradeDialog(GameData gameData, WormholeClient client, int ID, int targetID)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this._gameData       = gameData;
            this._client         = client;
            this._thisPlayerID   = ID;
            this._targetPlayerID = targetID;
            this.Text           += _gameData.PlayerList[targetID].Name;

            this._exMin = _gameData.PlayerList[ID].Fleet.ExMineral;
            this._exOrg = _gameData.PlayerList[ID].Fleet.ExOrganic;
            this._exEng = _gameData.PlayerList[ID].Fleet.ExEnergy;

            this.surplusMineral.Text = _exMin.ToString();
            this.surplusOrganic.Text = _exOrg.ToString();
            this.surplusEnergy.Text  = _exEng.ToString();

            //this.offerMineral.Maximum = _exMin;
            //this.offerOrganic.Maximum = _exOrg;
            //this.offerEnergy.Maximum = _exEng;

            this.AcceptButton     = this.bnOffer;
            this.bnAccept.Enabled = false;
            this.bnReject.Enabled = false;

            Fleet fleet = _gameData.PlayerList[ID].Fleet;

            for (int i = 0; i < fleet.Count; i++)
            {
                if (fleet[i].Type == Ship.ShipType.Trader)
                {
                    Trader trader = (Trader)fleet[i];
                    this.listBox1.Items.Add(trader.Trade);
                }
            }
        }
        public void RandomSignal()
        {
            var now = new DateTime(2013, 9, 10);

            var history = new List <StockMessage>
            {
                new StockMessage {
                    Symbol = "PACQU", Ask = 24.0, Bid = 13.50, Time = now.AddMinutes(-5)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 27.84, Bid = 13.50, Time = now.AddMinutes(-4)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 22.50, Bid = 13.50, Time = now.AddMinutes(-3)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 17.85, Bid = 13.50, Time = now.AddMinutes(-2)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 13.79, Bid = 11.00, Time = now.AddMinutes(-1)
                }
            };

            var random = new RandomSignal("PACQU");

            var portfolio   = new Portfolio();
            var stockBroker = new StubStockbroker(history);
            var trader      = new Trader(stockBroker, portfolio);

            trader.Register(random);

            stockBroker.CurrentTime = now.AddMinutes(-5);
            for (int i = 0; i < 5; i++)
            {
                stockBroker.CurrentTime = stockBroker.CurrentTime.AddMinutes(1);
                trader.Trade();
            }

            //trader.Balance.Should().BeGreaterThan(0);
        }
Beispiel #30
0
        public void AddDeal_CorrectDeal_AreEqualData()
        {
            //Arrange
            var seller = new Trader()
            {
                Name        = "NameSeller",
                Surname     = "SurnameSeller",
                PhoneNumber = "phoneNumberSeller",
                Balance     = 0,
            };

            var share = new Share()
            {
                Name  = "TestSare",
                Owner = seller,
                Price = 100
            };

            seller.SharesCollection.Add(share);

            var buyer = new Trader()
            {
                Name        = "NameBuyer",
                Surname     = "SurnameBuyer",
                PhoneNumber = "phoneNumberBuyer",
                Balance     = 80,
            };

            //Act
            _businessService.AddDeal(buyer, seller, share);

            //Assert
            Assert.AreEqual(seller.SharesCollection.Contains(share), false);
            Assert.AreEqual(buyer.SharesCollection.Contains(share), true);
            Assert.AreEqual(TraderService.GetZone(seller), Zone.Green);
            Assert.AreEqual(TraderService.GetZone(buyer), Zone.Black);
            Assert.AreEqual(share.Owner, buyer);
            Assert.AreEqual(buyer.Balance, -20);
            Assert.AreEqual(seller.Balance, 100);
        }
Beispiel #31
0
        public void TestTraderIdConcurrency()
        {
            var threads     = new List <Thread>();
            var threadCount = 100;

            for (var i = 0; i < threadCount; ++i)
            {
                var thread = new Thread(() =>
                {
                    trader = Market.GetNewTrader().Second;
                });
                thread.Start();
                threads.Add(thread);
            }
            foreach (var thread in threads)
            {
                thread.Join();
            }
            Trader currentMostTrader = Market.GetNewTrader().Second;

            Assert.AreEqual("Trader" + threadCount, currentMostTrader.ID);
        }
    public void CallTradeShipTest(Furniture landingPad)
    {
        // Currently not using any logic to select a trader
        TraderPrototype prototype = PrototypeManager.Trader.GetPrototype(Random.Range(0, PrototypeManager.Trader.Count - 1));
        Trader          trader    = prototype.CreateTrader();

        GameObject go = new GameObject(trader.Name);

        go.transform.parent = transform;
        TraderShipController controller = go.AddComponent <TraderShipController>();

        controller.Trader             = trader;
        controller.Speed              = 5f;
        go.transform.position         = new Vector3(-10, 50, 0);
        controller.LandingCoordinates = new Vector3(landingPad.Tile.X + 1, landingPad.Tile.Y + 1, 0);
        controller.LeavingCoordinates = new Vector3(100, 50, 0);
        go.transform.localScale       = new Vector3(1, 1, 1);
        SpriteRenderer spriteRenderer = go.AddComponent <SpriteRenderer>();

        spriteRenderer.sprite           = SpriteManager.current.GetSprite("Trader", "BasicHaulShip");
        spriteRenderer.sortingLayerName = "TradeShip";
    }
Beispiel #33
0
        private void OnItemMoved(Trader trader, TradeItem item, bool modified, int difference)
        {
            if (!modified && item.Stack > 0)
            {
                InventoryHandler.SendExchangeObjectAddedMessage(Crafter.Character.Client, Crafter != trader, item);
                InventoryHandler.SendExchangeObjectAddedMessage(Receiver.Character.Client, Receiver != trader, item);
            }
            else if (item.Stack <= 0)
            {
                InventoryHandler.SendExchangeObjectRemovedMessage(Crafter.Character.Client, Crafter != trader, item.Guid);
                InventoryHandler.SendExchangeObjectRemovedMessage(Receiver.Character.Client, Receiver != trader, item.Guid);
            }
            else
            {
                InventoryHandler.SendExchangeObjectModifiedMessage(Crafter.Character.Client, Crafter != trader, item);
                InventoryHandler.SendExchangeObjectModifiedMessage(Receiver.Character.Client, Receiver != trader, item);
            }


            FirstTrader.ToggleReady(false);
            SecondTrader.ToggleReady(false);
        }
Beispiel #34
0
        public void ShouldChangeShare()
        {
            // Arrange
            ShareService transactionService = new ShareService(
                this.provider,
                this.shareRep,
                this.traderRep,
                this.logger);

            Trader owner = new Trader()
            {
                name    = "Evgeniy",
                surname = "Nikulin",
            };
            Share oldShare = new Share()
            {
                name     = "Ubisoft",
                price    = 50m,
                quantity = 10,
                ownerId  = 1,
            };

            traderRep.GetTrader(Arg.Any <int>()).Returns(owner);
            shareRep.GetShare(Arg.Any <int>()).Returns(oldShare);

            // Act
            string shareId  = "1";
            string newName  = "Microsoft";
            string newPrice = "100";
            string ownerId  = "1";

            transactionService.ChangeShare(shareId, newName, newPrice, ownerId);

            // Assert
            shareRep.Received(1).Push(Arg.Any <Share>());
            shareRep.Received(1).SaveChanges();
            logger.Info($"Share {oldShare.name} changed to {newName} with {newPrice} price at {owner.name} {owner.surname} trader");
            provider.Received(1).GetPhrase(Phrase.Success);
        }
Beispiel #35
0
        static async Task Main(string[] args)
        {
            try
            {
                var stocks       = new[] { "qqq", "msft", "fb", "aapl" };
                var task         = new List <Task>();
                var alpacaClient = TradingClientFactory.GetTradingClient(TradingClientType.Alpaca);
                foreach (var stock in stocks)
                {
                    var trader = new Trader(StockDataReaderFactory.GetStockDataReader(StockDataReaderType.Yahoo, stock),
                                            alpacaClient, stock);

                    task.Add(Task.Run(() => trader.HandleOrders()));
                }

                await Task.WhenAll(task.ToArray());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            /*var stocks = new[] {"qqq", "msft", "fb", "aapl"};
             * var task = new List<Task>();
             * foreach (var stock in stocks)
             * {
             *  task.Add(Task.Run(() => ScrapperFactory.GetScrapper(ScrapperType.Yahoo, stock).ReadStocksValue()));
             * }
             *
             * await Task.WhenAll(task.ToArray());*/

            /*var watch = System.Diagnostics.Stopwatch.StartNew();
             *
             * Console.WriteLine($"Profit is  {Test()}");
             * watch.Stop();
             * var elapsedMs = watch.ElapsedMilliseconds;
             * Console.WriteLine($"time: { elapsedMs}");*/
        }
Beispiel #36
0
        private void OnItemMoved(Trader trader, TradeItem item, bool modified, int difference)
        {
            if (m_decrafting)
            {
                return;
            }

            if (!modified && item.Stack > 0)
            {
                InventoryHandler.SendExchangeObjectAddedMessage(Character.Client, false, item);
            }

            else if (item.Stack <= 0)
            {
                InventoryHandler.SendExchangeObjectRemovedMessage(Character.Client, false, item.Guid);
            }

            else
            {
                InventoryHandler.SendExchangeObjectModifiedMessage(Character.Client, false, item);
            }
        }
Beispiel #37
0
        public static TradingHistory ToTradingHistory(
            this TradingHistoryModel tradingHistory,
            Auctioneer auctioneer,
            Trader trader,
            Lot lot)
        {
            if (tradingHistory == null)
            {
                throw new ArgumentNullException(nameof(tradingHistory));
            }

            if (auctioneer == null)
            {
                throw new ArgumentNullException(nameof(auctioneer));
            }

            if (trader == null)
            {
                throw new ArgumentNullException(nameof(trader));
            }

            if (lot == null)
            {
                throw new ArgumentNullException(nameof(lot));
            }

            return(new TradingHistory
            {
                AuctioneerId = auctioneer.Id,
                LotId = lot.Id,
                TraderId = trader.Id,
                BidTime = tradingHistory.BidTime,
                BidOrder = tradingHistory.BidOrder,
                RecordedPrice = tradingHistory.RecordedPrice,
                Auctioneer = auctioneer,
                Lot = lot,
                Trader = trader
            });
        }
 public WtsWrapper(Construct wts_, Trader trdr_, TraderArgs args_)
 {
   Weights = wts_;
   Trader = trdr_;
   Args = args_;
 }
 public void AddToTraders(Trader trader)
 {
     base.AddObject("Traders", trader);
 }
 public void balanceAccessorModifierTest()
 {
     Trader t = new Trader();
     t.setBalance(1050);
     Assert.AreEqual(t.getBalance(), 1050);
 }
 internal void AddWts(Construct construct_, TraderArgs args_, Trader trader_)
 {
   checkedListBox2.Items.Add(new WtsWrapper(construct_,trader_,args_) , true);
 }
 public static Trader CreateTrader(int ID, int currentInvoiceCounter, string countryId, byte[] rowVersion)
 {
     Trader trader = new Trader();
     trader.Id = ID;
     trader.CurrentInvoiceCounter = currentInvoiceCounter;
     trader.CountryId = countryId;
     trader.RowVersion = rowVersion;
     return trader;
 }
Beispiel #43
0
        private void initBehaviourModel(string prof)
        {
            switch(prof)
            {
                case "craftsman":
                    Behaviour = new Craftsman(this, ProfLevels[prof]);
                    break;
                case "farmer":
                    Behaviour = new Farmer(this, ProfLevels[prof]);
                    break;
                case "guardian":
                    Behaviour = new Guardian(this, ProfLevels[prof]);
                    break;
                case "thief":
                    Behaviour = new Thief(this, ProfLevels[prof]);
                    break;
                case "trader":
                    Behaviour = new Trader(this, ProfLevels[prof]);
                    break;
                default: throw new Exception("Wrong proffession");
            }

            Log.Add("citizens:Human " + Name + " behaviour: " + prof);
        }
        public void receiveTest()
        {
            Trader t = new Trader("Player1", 1500);

            t.receive(55);

            Assert.AreEqual(t.getBalance(), 1555);
        }
        public void payTest()
        {
            Trader t = new Trader("Player1", 1500);

            t.pay(111);

            Assert.AreEqual(t.getBalance(), 1500 - 111);
        }
 public void propetyTest()
 {
     Trader t = new Trader();
     Property p = new Property("Queen Street");
     t.obtainProperty(ref p);
     Assert.Contains(p, t.getPropertiesOwned());
 }
 public void nameAccessorModifierTest()
 {
     Trader t = new Trader();
     t.setName("Banker");
     Assert.AreEqual(t.getName(), "Banker");
 }
 public void SenderClosedEventHandle(object sender, Trader.Helper.Common.SenderClosedEventArgs e)
 {
     this.EnqueueDisconnectSession(e.Session);
 }
        public void outputToString()
        {
            Trader t = new Trader();

            Console.Write(t);
        }
 public void BeforeAll()
 {
     _trader = new Trader();
 }