public void ShouldChangeShareType()
        {
            // Arrange
            var shareService = new ShareService(
                this.shareRepository,
                this.shareTypeRepository,
                this.stockRepository,
                this.traderRepository);
            ShareTypeEntity firstShareType = new ShareTypeEntity {
                Id = 1
            };
            ShareTypeEntity secondShareType = new ShareTypeEntity {
                Id = 2
            };
            ShareEntity shareToChange = new ShareEntity {
            };

            this.shareRepository.GetById(Arg.Is <int>(1)).Returns(shareToChange);
            this.shareTypeRepository.GetById(Arg.Is <int>(1)).Returns(firstShareType);
            this.shareTypeRepository.GetById(Arg.Is <int>(2)).Returns(secondShareType);

            // Act
            shareService.ChangeShareType(1, 2);

            // Assert
            this.shareRepository.Received(1).Save(shareToChange);
            Assert.IsTrue(shareToChange.ShareType == secondShareType);
        }
示例#2
0
        public int InsertShareType(ShareTypeEntity entity)
        {
            string   insertSql = @"   INSERT INTO [ShareType]([Title],[CreatedBy],[CreatedOn],[Type])
                                    VALUES(@Title, @CreatedBy, @CreatedOn, @Type);
                                    SELECT ISNULL( SCOPE_IDENTITY(),0);";
            Database db        = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(insertSql))
            {
                try
                {
                    db.AddInParameter(dbCommand, "Title", DbType.String, entity.Title);
                    db.AddInParameter(dbCommand, "CreatedBy", DbType.Int32, entity.CreatedBy);
                    db.AddInParameter(dbCommand, "CreatedOn", DbType.DateTime, entity.CreatedOn);
                    db.AddInParameter(dbCommand, "Type", DbType.Int32, entity.Type);
                    int    result;
                    object obj = db.ExecuteScalar(dbCommand);
                    if (!int.TryParse(obj.ToString(), out result))
                    {
                        return(0);
                    }
                    return(result);
                }
                catch (Exception ex)
                {
                    WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]"
                                                    , insertSql, base.FormatParameters(dbCommand.Parameters), ex.Message));
                    return(0);
                }
            }
        }
示例#3
0
        public List <ShareTypeEntity> GetShareTypes()
        {
            string   strSql = @"SELECT * FROM [ShareType]";
            var      list   = new List <ShareTypeEntity>();
            Database db     = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(strSql))
            {
                try
                {
                    using (IDataReader dataReader = db.ExecuteReader(dbCommand))
                        while (dataReader.Read())
                        {
                            list.Add(ShareTypeEntity.ReaderBind(dataReader));
                        }
                }
                catch (Exception ex)
                {
                    WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]"
                                                    , strSql.ToString(), base.FormatParameters(dbCommand.Parameters), ex.Message));
                    return(null);
                }
            }
            return(list);
        }
示例#4
0
        /// <summary>
        /// 详细页面
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IActionResult Detail(int id)
        {
            ShareTypeBLL    shareTypeBLL    = new ShareTypeBLL();
            ShareTypeEntity shareTypeEntity = shareTypeBLL.GetById(id);

            return(View(shareTypeEntity));
        }
示例#5
0
        public void ChangeType(int shareId, ShareTypeEntity newShareType)
        {
            ContainsById(shareId);

            this.tableRepository.SetType(shareId, newShareType);

            this.tableRepository.SaveChanges();
        }
示例#6
0
        public virtual void ChangeShareType(int shareId, int shareTypeId)
        {
            ValidateShareExistence(shareId);
            ValidateShareTypeExistence(shareTypeId);
            ShareEntity     shareToChange = this.shareTableRepository.GetById(shareId);
            ShareTypeEntity shareType     = this.shareTypeTableRepository.GetById(shareTypeId);

            shareToChange.ShareType = shareType;

            this.shareTableRepository.Save(shareToChange);
        }
示例#7
0
        public int RegisterNewShareType(ShareTypeRegistrationInfo args)
        {
            var entityToAdd = new ShareTypeEntity()
            {
                Name   = args.Name,
                Cost   = args.Cost,
                Status = args.Status
            };

            if (this.tableRepository.Contains(entityToAdd))
            {
                throw new ArgumentException("This share type has been registered. Can't continue.");
            }

            this.tableRepository.Add(entityToAdd);

            this.tableRepository.SaveChanges();

            return(entityToAdd.Id);
        }
示例#8
0
        public bool InsertType(ShareTypeEntity type)
        {
            this.ClearBrokenRuleMessages();
            BaseValidator <ShareTypeEntity> validator = new ShareTypeValidator();

            if (!validator.Validate(type))
            {
                this.AddBrokenRuleMessages(validator.BrokenRuleMessages);
            }
            int id = _shareRepo.InsertShareType(type);

            if (id <= 0)
            {
                this.AddBrokenRuleMessage();
                return(false);
            }
            type.ID = id;

            _cache[CacheKeyAllShareTypes] = null;
            return(true);
        }
示例#9
0
 public bool Contains(ShareTypeEntity entity)
 {
     return(this.dBContext.ShareTypes.Any(s =>
                                          s.Name == entity.Name));
 }
示例#10
0
 public void Add(ShareTypeEntity entity)
 {
     this.dBContext.ShareTypes.Add(entity);
 }
示例#11
0
        protected override void Seed(TradingAppDbContext context)
        {
            TraderEntity trader1 = new TraderEntity {
                FirstName = "Igor", LastName = "Igorev", Balance = 500, PhoneNumber = "89999999901"
            };
            TraderEntity trader2 = new TraderEntity {
                FirstName = "Vitaly", LastName = "Vitaliev", Balance = -100, PhoneNumber = "89999999902"
            };
            TraderEntity trader3 = new TraderEntity {
                FirstName = "Andrey", LastName = "Andreev", Balance = 430, PhoneNumber = "89999999903"
            };
            TraderEntity trader4 = new TraderEntity {
                FirstName = "Vladimir", LastName = "Vladimirov", Balance = 390, PhoneNumber = "89999999904"
            };
            TraderEntity trader5 = new TraderEntity {
                FirstName = "Vasiliy", LastName = "Vasiliev", Balance = 450, PhoneNumber = "89999999905"
            };
            TraderEntity trader6 = new TraderEntity {
                FirstName = "Nikolay", LastName = "Nikolaev", Balance = 0, PhoneNumber = "89999999906"
            };

            CompanyEntity mcDonalds = new CompanyEntity {
                Name = "McDonalds"
            };
            CompanyEntity kfc = new CompanyEntity {
                Name = "KFC"
            };
            CompanyEntity burgerKing = new CompanyEntity {
                Name = "Burger King"
            };

            StockEntity mcDonaldsStock = new StockEntity {
                Company = mcDonalds, PricePerUnit = 50
            };
            StockEntity kfcStock = new StockEntity {
                Company = kfc, PricePerUnit = 42
            };
            StockEntity burgerKingStock = new StockEntity {
                Company = burgerKing, PricePerUnit = 40
            };

            ShareTypeEntity normal = new ShareTypeEntity {
                Name = "Normal", Multiplier = 1M
            };
            ShareTypeEntity privelage = new ShareTypeEntity {
                Name = "Privelage", Multiplier = 1.5M
            };
            ShareTypeEntity special = new ShareTypeEntity {
                Name = "Special", Multiplier = 2.5M
            };

            ShareEntity kfcShare1 = new ShareEntity {
                Stock = kfcStock, Owner = trader1, Amount = 3, ShareType = normal
            };
            ShareEntity kfcShare2 = new ShareEntity {
                Stock = kfcStock, Owner = trader2, Amount = 2, ShareType = normal
            };
            ShareEntity kfcShare3 = new ShareEntity {
                Stock = kfcStock, Owner = trader4, Amount = 40, ShareType = special
            };

            ShareEntity mcDonaldsShare1 = new ShareEntity {
                Stock = mcDonaldsStock, Owner = trader1, Amount = 5, ShareType = privelage
            };
            ShareEntity mcDonaldsShare2 = new ShareEntity {
                Stock = mcDonaldsStock, Owner = trader3, Amount = 35, ShareType = special
            };
            ShareEntity mcDonaldsShare3 = new ShareEntity {
                Stock = mcDonaldsStock, Owner = trader6, Amount = 4, ShareType = normal
            };

            ShareEntity burgerKingShare1 = new ShareEntity {
                Stock = burgerKingStock, Owner = trader5, Amount = 25, ShareType = privelage
            };
            ShareEntity burgerKingShare2 = new ShareEntity {
                Stock = burgerKingStock, Owner = trader2, Amount = 4, ShareType = normal
            };
            ShareEntity burgerKingShare3 = new ShareEntity {
                Stock = burgerKingStock, Owner = trader1, Amount = 2, ShareType = normal
            };
            ShareEntity burgerKingShare4 = new ShareEntity {
                Stock = burgerKingStock, Owner = trader3, Amount = 6, ShareType = privelage
            };

            context.Traders.Add(trader1);
            context.Traders.Add(trader2);
            context.Traders.Add(trader3);
            context.Traders.Add(trader4);
            context.Traders.Add(trader5);
            context.Traders.Add(trader6);

            context.SaveChanges();

            context.Companies.Add(mcDonalds);
            context.Companies.Add(kfc);
            context.Companies.Add(burgerKing);

            context.SaveChanges();

            context.Stocks.Add(mcDonaldsStock);
            context.Stocks.Add(kfcStock);
            context.Stocks.Add(burgerKingStock);

            context.SaveChanges();

            context.ShareTypes.Add(normal);
            context.ShareTypes.Add(privelage);
            context.ShareTypes.Add(special);

            context.SaveChanges();

            context.Shares.Add(kfcShare1);
            context.Shares.Add(kfcShare2);
            context.Shares.Add(kfcShare3);

            context.SaveChanges();

            context.Shares.Add(mcDonaldsShare1);
            context.Shares.Add(mcDonaldsShare2);
            context.Shares.Add(mcDonaldsShare3);

            context.SaveChanges();

            context.Shares.Add(burgerKingShare1);
            context.Shares.Add(burgerKingShare2);
            context.Shares.Add(burgerKingShare3);
            context.Shares.Add(burgerKingShare4);

            context.SaveChanges();
        }
示例#12
0
        public void SetType(int entityId, ShareTypeEntity newType)
        {
            var share = this.dBContext.Shares.First(s => s.Id == entityId); // it will fall here if we can't find

            share.Type = newType;
        }