Exemplo n.º 1
0
        public void Test()
        {
            Account acc = new Account();

            acc.BankRoll = 50000;

            IStockHolder holder = new StockHolder();

            acc.Holder = holder;

            IBonusReader reader = new FakeBonusReader();

            BonusProcessor processor = new BonusProcessor();

            processor.Load(FakeBonusReader.STOCKID, reader);

            acc.Processor = processor;

            acc.DoBusiness(new StockOper(UNITPRICE, BUYCOUNT, OperType.Buy));

            Assert.IsTrue(acc.Holder.StockCount() == BUYCOUNT);
            Assert.IsTrue(acc.Holder.UnitPrice >= UNITPRICE);

            acc.ProcessBonus(new DateTime(2009, 1, 1));
            acc.ProcessBonus(new DateTime(2009, 1, 2));

            double cash = acc.BankRoll;

            acc.ProcessBonus(new DateTime(2009, 1, 3));
            Assert.IsTrue(acc.Holder.StockCount() == BUYCOUNT);
            Assert.IsTrue(acc.BankRoll > cash);
            acc.ProcessBonus(new DateTime(2009, 1, 4));
            Assert.IsTrue(acc.Holder.StockCount() == BUYCOUNT + (BUYCOUNT * 0.1));
        }
Exemplo n.º 2
0
 public IEnumerable <StockHolder> ReadCsv(string data)
 {
     using (var reader = new StringReader(data))
         using (var csvReader = new CsvReader(reader, CultureInfo.InvariantCulture))
         {
             // return csvReader.GetRecords<StockHolder>().ToList();
             while (csvReader.Read())
             {
                 StockHolder stockHolder = null;
                 try
                 {
                     stockHolder = csvReader.GetRecord <StockHolder>();
                 }
                 catch (CsvHelper.TypeConversion.TypeConverterException ex)
                 {
                     _logger.LogDebug(ex.Message);
                 }
                 catch (Exception ex)
                 {
                     _logger.LogWarning(ex.Message);
                 }
                 if (stockHolder != null)
                 {
                     yield return(stockHolder);
                 }
             }
         }
 }
Exemplo n.º 3
0
        public void StockHolder(int stockId)
        {
            string     code   = db.Stocks.Where(v => v.Id == stockId).First().Code;
            Definition obj    = db.Definitions.Where(v => v.Id == 35012).First();
            string     url    = obj.CodeNum.Replace("{code}", code);
            string     method = "";

            switch (obj.Num1)
            {
            case 1:
                method = "Get";
                break;

            case 2:
                method = "Post";
                break;

            case 3:
                method = "Put";
                break;
            }
            string data  = WindowFramework.LibWeb.HttpRequestData(url, method);
            int    start = data.IndexOf("KL CP đang lưu hành :&nbsp;") + "KL CP đang lưu hành :&nbsp;".Length;

            data = data.Substring(start);
            int   end          = data.IndexOf("&nbsp;cp");
            int   currentStock = Convert.ToInt32(data.Substring(0, end).Replace(",", ""));
            Stock stock        = db.Stocks.Where(v => v.Id == stockId).First();

            stock.TotalStock = currentStock;
            db.SubmitChanges();

            string[] holder = new string[3];
            data = data.Substring(data.IndexOf("<table") + 6);
            data = data.Substring(data.IndexOf("<tr") + 3);
            data = data.Substring(data.IndexOf("<tr") + 3);

            //Delete all StockHolder of stockId
            var items = db.StockHolders.Where(v => v.StockId == stockId);

            db.StockHolders.DeleteAllOnSubmit(items);

            StockHolder stockHolder;

            while (data.IndexOf("<tr") < data.IndexOf("</table>"))
            {
                start = data.IndexOf("<td align=\"left\">") + "<td align=\"left\">".Length;
                data  = data.Substring(start);
                end   = data.IndexOf("</td>");

                holder[0] = StringClear(data.Substring(0, end)); // fullname
                data      = data.Substring(end);

                start     = data.IndexOf("<td align=\"right\">") + "<td align=\"right\">".Length;
                data      = data.Substring(start);
                end       = data.IndexOf("</td>");
                holder[1] = StringClear(data.Substring(0, end)); // quantity

                start     = data.IndexOf("<td align=\"center\">") + "<td align=\"center\">".Length;
                data      = data.Substring(start);
                end       = data.IndexOf("</td>");
                holder[2] = StringClear(data.Substring(0, end)); // affect date
                //insert to StockHolder
                stockHolder                 = new StockHolder();
                stockHolder.StockId         = stockId;
                stockHolder.StockHolderName = holder[0];
                stockHolder.Quantity        = Convert.ToInt32(holder[1]);
                stockHolder.AffectedDate    = DateTime.ParseExact(holder[2], "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                db.StockHolders.InsertOnSubmit(stockHolder);
                db.SubmitChanges();
            }
        }