Example #1
0
        public async Task <IHttpActionResult> PostTraderInfo(TraderInfo traderInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.TraderInfoes.Add(traderInfo);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (TraderInfoExists(traderInfo.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = traderInfo.Id }, traderInfo));
        }
Example #2
0
        public bool TraderInfoValidate(TraderInfo traderInfo)
        {
            bool validFirstName = traderInfo.Name.All(c => char.IsLetter(c));

            if (!validFirstName)
            {
                Console.WriteLine("Wrong first name. Operation cancel.");
                return(false);
            }

            bool validLastName = traderInfo.Surname.All(c => char.IsLetter(c));

            if (!validLastName)
            {
                Console.WriteLine("Wrong last name. Operation cancel.");
                return(false);
            }

            bool validPhone = traderInfo.PhoneNumber.All(c => char.IsDigit(c)) && traderInfo.PhoneNumber.Length < 9;

            if (!validPhone)
            {
                Console.WriteLine("Wrong phone. Operation cancel.");
                return(false);
            }
            return(true);
        }
        public ActionResult AddClient(string name, string surname, string phone)
        {
            var newTrader = new TraderInfo()
            {
                Name        = name,
                Surname     = surname,
                PhoneNumber = phone,
                Balance     = 1000M
            };

            if (!validator.TraderInfoValidate(newTrader))
            {
                return(StatusCode(400, "Bad values for registration new trader"));
            }
            try
            {
                tradersService.RegisterNewTrader(newTrader);
            }
            catch (ArgumentException)
            {
                return(StatusCode(400, "This trader has been registered)"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
            return(Ok("New trader added succesfully"));
        }
Example #4
0
        public async Task <IHttpActionResult> PutTraderInfo(int id, TraderInfo traderInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != traderInfo.Id)
            {
                return(BadRequest());
            }

            db.Entry(traderInfo).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TraderInfoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Example #5
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>();
 }
Example #6
0
        private void ModificationTradersStock()
        {
            logger.Info("Adding stock to trader");
            Console.WriteLine("Please input traders name:");
            string traderName = Console.ReadLine();

            Console.WriteLine("Please input stock name:");
            string stockName = Console.ReadLine();

            if (!validator.StockToTraderValidate(traderName, stockName))
            {
                Console.WriteLine($"Can`t add stock {stockName} to trader {traderName}");
                logger.Info($"Can`t add stock {stockName} to trader {traderName}");
                return;
            }

            var trader = traders.GetTraderByName(traderName);
            var stock  = stockService.GetStockByName(stockName);

            Console.WriteLine("Please input count of stocks:");
            string countStock = Console.ReadLine();

            bool validCount = Int32.TryParse(countStock, out int count);

            if (!validCount)
            {
                Console.WriteLine("Wrong count of stock. Operation cancel.");
                return;
            }

            logger.Info($"Try to add stock = {stock.Name} to trader {trader.Name}");
            try
            {
                TraderInfo traderInfo = new TraderInfo
                {
                    Id   = trader.Id,
                    Name = trader.Name,
                };
                StockInfo stockInfo = new StockInfo
                {
                    Id           = stock.Id,
                    Name         = stock.Name,
                    Count        = count,
                    PricePerItem = stock.PricePerItem
                };

                var id = traderStocks.AddNewStockToTrader(traderInfo, stockInfo);
                Console.WriteLine("Stock added to trader succesfully");
                logger.Info($"Stock {stockInfo.Name} added to trader {traderInfo.Name} succesfully");
            }
            catch (ArgumentException e)
            {
                Console.WriteLine($"{e.Message} Operation cancel.");
                logger.Info("Stock has not been added");
                logger.Error(e);
            }
        }
Example #7
0
        public async Task <IHttpActionResult> GetTraderInfo(int id)
        {
            TraderInfo traderInfo = await db.TraderInfoes.FindAsync(id);

            if (traderInfo == null)
            {
                return(NotFound());
            }

            return(Ok(traderInfo));
        }
Example #8
0
        public string RegisterTrader(TraderInfo traderInfo)
        {
            var content      = new StringContent(JsonConvert.SerializeObject(traderInfo), Encoding.UTF8, "application/json");
            var response     = this.httpClient.PostAsync(this.baseAddress + "clients/add", content).Result;
            var responseBody = response.Content.ReadAsStringAsync().Result;

            if (response.IsSuccessStatusCode)
            {
                return(responseBody);
            }
            throw new Exception(responseBody);
        }
Example #9
0
 public IActionResult RegisterUser([FromBody] TraderInfo traderInfo)
 {
     try
     {
         this.service.RegisterNewUser(traderInfo);
         return(Ok("User successfully added"));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Example #10
0
 public IActionResult Remove([FromBody] TraderInfo traderInfo)
 {
     try
     {
         this.service.RemoveUser(traderInfo);
         return(Ok("Successfully removed user from database"));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Example #11
0
        public async Task <IHttpActionResult> PostTraderInfo(TraderInfo traderInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.TraderInfoes.Add(traderInfo);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = traderInfo.Id }, traderInfo));
        }
 public override void RemoveUser(TraderInfo info)
 {
     try
     {
         base.RemoveUser(info);
         Logger.FileLogger.Info($"Removed user {info.FirstName} {info.LastName}");
     }
     catch (Exception ex)
     {
         Logger.FileLogger.Error(ex);
         throw ex;
     }
 }
Example #13
0
        public async Task <IHttpActionResult> DeleteTraderInfo(int id)
        {
            TraderInfo traderInfo = await db.TraderInfoes.FindAsync(id);

            if (traderInfo == null)
            {
                return(NotFound());
            }

            db.TraderInfoes.Remove(traderInfo);
            await db.SaveChangesAsync();

            return(Ok(traderInfo));
        }
 public override int RegisterNewUser(TraderInfo info)
 {
     try
     {
         var traderId = base.RegisterNewUser(info);
         Logger.FileLogger.Info("Registered new user");
         return(traderId);
     }
     catch (Exception ex)
     {
         Logger.FileLogger.Error(ex);
         throw ex;
     }
 }
        public void ShouldNotRegisterNewTraderWithEmptySurname()
        {
            // Arrange
            TraderService tradersService = new TraderService(this.repository);
            TraderInfo info = new TraderInfo
            {
                FirstName = "Artem",
                LastName = string.Empty,
                PhoneNumber = "79998887766",
                Balance = 100
            };

            // Act
            tradersService.RegisterNewUser(info);
        }
        public void ShouldNotRegisterNewTraderWithIncorrectPhoneNumber()
        {
            // Arrange
            TraderService tradersService = new TraderService(this.repository);
            TraderInfo info = new TraderInfo
            {
                FirstName = "Artem",
                LastName = "Lozhechkin",
                PhoneNumber = "999asd9213",
                Balance = 100
            };

            // Act
            tradersService.RegisterNewUser(info);
        }
 private void TraderInfoHandler(TraderInfo traderInfo)
 {
     if (!traderInfo.Symbol.Equals(Smbl))
     {
         return;
     }
     if (Smbl.IsSpot)
     {
         Console.WriteLine($"Base currency balance: {traderInfo.TraderBalance2}");
         Console.WriteLine($"Quote currency balance: {traderInfo.TraderBalance}");
     }
     else
     {
         Console.WriteLine($"Trader balance: {traderInfo.TraderBalance}");
     }
 }
        public void ShouldNotRegisterNewTraderIfExists()
        {
            //Arrange
            TraderInfo trader = new TraderInfo();

            trader.Name        = "Monica";
            trader.Surname     = "Belucci";
            trader.PhoneNumber = "+79110000000";
            trader.Balance     = 143000.0M;

            //Act
            tradersService.RegisterNewTrader(trader);
            traderTableRepository.Contains(Arg.Is <TraderEntityDB>(
                                               w => w.Name == trader.Name &&
                                               w.Surname == trader.Surname &&
                                               w.PhoneNumber == trader.PhoneNumber &&
                                               w.Balance == trader.Balance)).Returns(true);
            tradersService.RegisterNewTrader(trader);
        }
        public ActionResult AddStock(string traderName, string stockName, string count)
        {
            if (!validator.StockToTraderValidate(traderName, stockName))
            {
                return(StatusCode(400, $"Can`t add stock {stockName} to trader {traderName}"));
            }

            var trader = tradersService.GetTraderByName(traderName);
            var stock  = stockService.GetStockByName(stockName);


            bool validCount = Int32.TryParse(count, out int countStock);

            if (!validCount)
            {
                return(StatusCode(400, "Bad count value. Operation cancel"));
            }


            TraderInfo traderInfo = new TraderInfo
            {
                Id   = trader.Id,
                Name = trader.Name,
            };
            StockInfo stockInfo = new StockInfo
            {
                Id           = stock.Id,
                Name         = stock.Name,
                Count        = countStock,
                PricePerItem = stock.PricePerItem
            };

            try
            {
                traderStocksService.AddNewStockToTrader(traderInfo, stockInfo);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
            return(Ok("Stock to trader added succesfully"));
        }
Example #20
0
        public void ShouldAddStockToTrader()
        {
            //Arrange
            TraderInfo trader = new TraderInfo();
            StockInfo  stock  = new StockInfo();

            trader.Id   = 2;
            stock.Id    = 3;
            stock.Count = 2;

            //Act
            var traderStockID = traderStockService.AddNewStockToTrader(trader, stock);

            //Assert
            traderStocksTableRepository.Received(1).Add(Arg.Is <StockToTraderEntityDB>(
                                                            w => w.TraderId == trader.Id &&
                                                            w.StockId == stock.Id &&
                                                            w.StockCount == stock.Count));
            traderStocksTableRepository.Received(1).SaveChanges();
        }
        public int AddNewStockToTrader(TraderInfo trader, StockInfo stock)
        {
            var entityToAdd = new StockToTraderEntityDB()
            {
                TraderId     = trader.Id,
                StockId      = stock.Id,
                StockCount   = stock.Count,
                PricePerItem = stock.PricePerItem
            };

            if (this.traderStockTableRepository.Contains(entityToAdd))
            {
                throw new ArgumentException($"This stock {stock.Name} has been added for trader {trader.Name} {trader.Surname}.");
            }

            this.traderStockTableRepository.Add(entityToAdd);

            this.traderStockTableRepository.SaveChanges();

            return(entityToAdd.Id);
        }
Example #22
0
        public int RegisterNewTrader(TraderInfo trader)
        {
            var entityToAdd = new TraderEntityDB()
            {
                CreatedAt   = DateTime.Now,
                Name        = trader.Name,
                Surname     = trader.Surname,
                PhoneNumber = trader.PhoneNumber,
                Balance     = trader.Balance
            };

            if (traderTableRepository.Contains(entityToAdd))
            {
                throw new ArgumentException($"This trader {entityToAdd.Name} {entityToAdd.Surname} has been registered.");
            }
            traderTableRepository.Add(entityToAdd);

            traderTableRepository.SaveChanges();

            return(entityToAdd.Id);
        }
Example #23
0
        private void TraderRegistartion()
        {
            logger.Info("Try to registration new trader");
            Console.WriteLine("Please input first name:");
            string firstName = Console.ReadLine();

            Console.WriteLine("Please input last name:");
            string lastName = Console.ReadLine();

            Console.WriteLine("Please input phone:");
            string phone = Console.ReadLine();

            var newTrader = new TraderInfo()
            {
                Name        = firstName,
                Surname     = lastName,
                PhoneNumber = phone,
                Balance     = 1000M
            };

            if (!validator.TraderInfoValidate(newTrader))
            {
                logger.Info($"Registration trader name = {newTrader.Name} surname = {newTrader.Surname} phone = {newTrader.PhoneNumber} cancel");
                return;
            }

            try
            {
                traders.RegisterNewTrader(newTrader);
                logger.Info("Registration new trader was succesfully");
                logger.Info($"New trader name = {firstName}, surname = {lastName}");
                Console.WriteLine("Registration was succesfully");
            }
            catch (ArgumentException e)
            {
                Console.WriteLine($"{e.Message} Operation cancel.");
                logger.Info($"New trader name = {firstName}, surname = {lastName} wasnt registration");
                logger.Error(e);
            }
        }
        public void ShouldRegisterNewTrader()
        {
            //Arrange

            TraderInfo trader = new TraderInfo();

            trader.Name        = "Monica";
            trader.Surname     = "Belucci";
            trader.PhoneNumber = "+79110000000";
            trader.Balance     = 143000.0M;

            //Act
            var traderID = tradersService.RegisterNewTrader(trader);

            //Assert
            traderTableRepository.Received(1).Add(Arg.Is <TraderEntityDB>(
                                                      w => w.Name == trader.Name &&
                                                      w.Surname == trader.Surname &&
                                                      w.PhoneNumber == trader.PhoneNumber &&
                                                      w.Balance == trader.Balance));
            traderTableRepository.Received(1).SaveChanges();
        }
Example #25
0
        public void ShouldNotAddNewStockToTraderIfExists()
        {
            //Arrange
            TraderInfo trader = new TraderInfo();
            StockInfo  stock  = new StockInfo();

            trader.Id          = 2;
            trader.Name        = "Monica";
            trader.Surname     = "Belucci";
            trader.PhoneNumber = "+79110000000";

            stock.Id    = 3;
            stock.Name  = "Intel";
            stock.Count = 2;
            //Act
            var traderStockID = traderStockService.AddNewStockToTrader(trader, stock);

            traderStocksTableRepository.Contains(Arg.Is <StockToTraderEntityDB>(
                                                     w => w.TraderId == trader.Id &&
                                                     w.StockId == stock.Id)).Returns(true);
            traderStockService.AddNewStockToTrader(trader, stock);
        }
        public void ShouldNotRegisterTraderIfExists()
        {
            // Arrange
            TraderService tradersService = new TraderService(this.repository);
            TraderInfo info = new TraderInfo
            {
                FirstName = "Vasiliy",
                LastName = "Vasiliev",
                PhoneNumber = "1234557",
                Balance = -100
            };

            // Act
            tradersService.RegisterNewUser(info);

            this.repository.Contains(Arg.Is<TraderEntity>(
                t => t.FirstName == info.FirstName
                && t.LastName == info.LastName
                && t.PhoneNumber == info.PhoneNumber
                && t.Balance == info.Balance)).Returns(true);

            tradersService.RegisterNewUser(info);
        }
Example #27
0
        static void Main(string[] args)
        {
            TraderInfo traderInfo = new TraderInfo();

            traderInfo.BrokerID               = "88888";
            traderInfo.UserID                 = "";
            traderInfo.InvestorID             = "";
            traderInfo.Password               = "";
            traderInfo.FrontID                = "tcp://114.80.55.115:42205";
            traderInfo.FlowPath               = "./trader/";
            traderInfo.PrivateTopicResumeType = (int)THOST_TE_RESUME_TYPE.THOST_TERT_RESTART;
            traderInfo.PublicTopicResumeType  = (int)THOST_TE_RESUME_TYPE.THOST_TERT_RESTART;
            traderInfo.AppID    = "";
            traderInfo.AuthCode = "";
            traderInfo.AuthKind = 1;

            trader = new TraderWrapper(traderInfo);
            trader.OnFrontConnected           += Trader_OnFrontConnected;;
            trader.OnRspUserLogin             += Trader_OnRspUserLogin;
            trader.OnRspSettlementInfoConfirm += Trader_OnRspSettlementInfoConfirm;
            trader.Connect();
            Console.Read();
        }
        public void ShouldRegisterNewTrader()
        {
            // Arrange
            TraderService tradersService = new TraderService(this.repository);
            TraderInfo info = new TraderInfo
            {
                FirstName = "Artem",
                LastName = "Lozhechkin",
                PhoneNumber = "79998887766",
                Balance = 100
            };

            // Act
            tradersService.RegisterNewUser(info);

            // Assert
            this.repository.Received(1).Add(Arg.Is<TraderEntity>
                    (w => w.FirstName == info.FirstName
                    && w.LastName == info.LastName
                    && w.PhoneNumber == info.PhoneNumber
                    && w.Balance == info.Balance));
            this.repository.Received(1).SaveChanges();
        }
Example #29
0
 /// <summary>
 ///  新增
 /// </summary>
 public int Add(TraderInfo model, IDbTransaction transaction = null)
 {
     return(_traderRepository.Insert(model, transaction));
 }
Example #30
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(TraderInfo model, IDbTransaction transaction = null)
 {
     return(_traderRepository.Update(model, transaction));
 }