Example #1
0
        //初始化交易记录转内存数据库持股构成
        private void StockHold_Init()
        {
            List <DealListEntity> DLEL;

            DealListReadAll(out DLEL);
            Dictionary <string, StockHoldEntity> dict = new Dictionary <string, StockHoldEntity>();

            foreach (DealListEntity DLE in DLEL)
            {
                StockHoldEntity SHE = DealList_Insert_StockHold(DLE);
                if (dict.ContainsKey(SHE.id))
                {
                    dict[SHE.id] = SHE;
                }
                else
                {
                    dict.Add(SHE.id, SHE);
                }
            }
            foreach (var x in dict)
            {
                StockHoldSet(x.Value);
            }
            MoneyReadSet();
        }
Example #2
0
 public void UpdateCanvas(Canvas canvas, StockHoldEntity SHE)
 {
     if (!Change(SHE.id, SHE.hold, SHE.money))
     {
         Add(SHE.id, SHE.name, SHE.hold, SHE.money);
     }
 }
Example #3
0
        //重置id相关
        private void DealListRestore(DealListEntity DLE)
        {
            List <DealListEntity> DLEL;

            deallist.Select(DLE.id, out DLEL);
            StockHoldEntity SHE = new StockHoldEntity();

            SHE.id = DLE.id;
            stockhold.Select(ref SHE);
            MoneyChangeNow(SHE.money);
            stockhold.Delete(DLE.id);
            historystockhold.Delete(DLE.id);
            if (DLEL.Count == 0)
            {
                SHE.hold  = 0;
                SHE.id    = DLE.id;
                SHE.money = 0;
                SHE.name  = DLE.name;
                StockHoldSet(SHE);
            }
            foreach (DealListEntity D in DLEL)
            {
                SHE = DealList_Insert_StockHold(D);
            }
            StockHoldSet(SHE);
            MoneyReadSet();
        }
Example #4
0
        //批量增加交易记录
        public void DealListAdd(List <DealListEntity> DLEL)
        {
            Dictionary <string, StockHoldEntity> dict = new Dictionary <string, StockHoldEntity>();

            foreach (DealListEntity DLE in DLEL)
            {
                DealListEntity D = DLE;
                D.deal = dealid;
                deallist.Insert(D);
                StockHoldEntity SHE = DealList_Insert_StockHold(D);
                if (dict.ContainsKey(SHE.id))
                {
                    dict[SHE.id] = SHE;
                }
                else
                {
                    dict.Add(SHE.id, SHE);
                }
            }
            foreach (var x in dict)
            {
                StockHoldSet(x.Value);
            }
            MoneyReadSet();
        }
Example #5
0
 //持股构成执行委托
 private void StockHoldSet(StockHoldEntity SHE)
 {
     if (stockholdDelegate != null)
     {
         stockholdDelegate(SHE);
     }
 }
Example #6
0
 private void StockHoldDelegate(StockHoldEntity SHE)
 {
     foreach (UIStockHold x in StockHoldDelegateList)
     {
         //x.Invoke(SHE);
         x(SHE);
     }
 }
Example #7
0
        //public double ExistsRemove(string id)
        //{
        //    double height = -5;
        //    foreach(StockStateBox SSB in canvas.Children)
        //    {
        //        if (SSB.stockid == id)
        //        {
        //            if (StockStateBox.pre == SSB)
        //                height = SSB.Margin.Top;
        //            canvas.Children.Remove(SSB);
        //            canvasbox.Remove(SSB);
        //            return height;
        //        }
        //    }
        //    return height;
        //}
        public void GetDelegateValues(StockHoldEntity SHE)
        {
            Action <Canvas, StockHoldEntity> updateAction = new Action <Canvas, StockHoldEntity>(UpdateCanvas);

            canvas.Dispatcher.BeginInvoke(updateAction, canvas, SHE);
            //if (!Change(SHE.id, SHE.hold, SHE.money))
            //{
            //    Add(SHE.id, SHE.name, SHE.hold, SHE.money);
            //}
        }
Example #8
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string u = user.Text;

            try
            {
                Convert.ToDouble(money.Text);
                if (number.Text == "0")
                {
                    throw new Exception();
                }
                if (type.Text == "买入" || type.Text == "补仓")
                {
                    int buy = Convert.ToInt32(number.Text);
                    if (buy % 100 != 0)
                    {
                        throw new Exception();
                    }
                    if (buy * Convert.ToDouble(money.Text) > UserPanelController.Handler().DBControllerByName(u).NowMoneyRead())
                    {
                        MessageBox.Show("现金不足!");
                        return;
                    }
                }
                else if (type.Text == "卖出")
                {
                    StockHoldEntity SHE = new StockHoldEntity();
                    SHE.id = id.Text;
                    UserPanelController.Handler().DBControllerByName(u).StockHoldRead(ref SHE);
                    if (SHE.hold < Convert.ToInt32(number.Text))
                    {
                        MessageBox.Show("卖出数目超出范围!");
                        return;
                    }
                }
                if (taxrate.Text[taxrate.Text.Length - 1] != '‰')
                {
                    throw new Exception();
                }
                if (commission.Text[commission.Text.Length - 1] != '‰')
                {
                    throw new Exception();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("输入的数据有误\n请检查后输入");
                return;
            }
            DealListEntity DLE;

            DLE.deal       = deal;
            DLE.name       = name.Text;
            DLE.id         = id.Text;
            DLE.date       = Convert.ToDateTime(date.Text);
            DLE.type       = type.Text;
            DLE.money      = Convert.ToDouble(money.Text);
            DLE.number     = Convert.ToInt32(number.Text);
            DLE.taxrate    = Convert.ToDouble(taxrate.Text.Substring(0, taxrate.Text.IndexOf("‰")));
            DLE.commission = Convert.ToDouble(commission.Text.Substring(0, commission.Text.IndexOf("‰")));
            DLE.explain    = explain.Text;
            DLE.remark     = remark.Text;
            UserPanelController.Handler().UserChange(u);

            //UserPanelController.Handler().DBControllerByName(u).DealListAdd(DLE);
            DBDataThreadController.DBDataThreadControllerHandler(UserPanelController.Handler().DBControllerByName(u)).DealListAdd(DLE);
            MainWindow.ShowNotifyMessage("交易记录已添加\n股票:" + DLE.name + "以" + DLE.money + "元" + DLE.type + DLE.number + "股!");
            //MessageBox.Show("添加成功!");
            //StockStateBoxController.Handler().Add(id.Text, name.Text, Convert.ToInt32(number.Text), Convert.ToDouble(money.Text) * Convert.ToInt32(number.Text));
            this.Close();
        }
Example #9
0
        //按类型转换
        private StockHoldEntity DealList_Insert_StockHold(DealListEntity DLE)
        {
            if (DLE.deal >= dealid)
            {
                dealid = DLE.deal + 1;
            }
            StockHoldEntity SHE = new StockHoldEntity();

            SHE.id   = DLE.id;
            SHE.name = DLE.name;
            double c;

            if (DLE.type == "买入")
            {
                SHE.hold = DLE.number;
                c        = -(DLE.number * DLE.money);
                MoneyChangeNow(c);
            }
            else if (DLE.type == "卖出")
            {
                SHE.hold = -DLE.number;
                c        = DLE.number * DLE.money;
                MoneyChangeNow(c);
            }
            else if (DLE.type == "补仓")
            {
                SHE.hold = DLE.number;
                c        = -(DLE.number * DLE.money);
                MoneyChangeNow(c);
            }
            else if (DLE.type == "卖空")
            {
                SHE.hold = -DLE.number;
                c        = DLE.number * DLE.money;
                MoneyChangeNow(c);
            }
            else
            {
                SHE.hold = DLE.number;
                c        = -(DLE.number * DLE.money);
                MoneyChangeNow(c);
            }
            SHE.money = -c;
            StockHoldEntity SHE_ = new StockHoldEntity();

            SHE_.id = SHE.id;
            stockhold.Select(ref SHE_);
            HistoryStockHoldEntity HSHE = new HistoryStockHoldEntity();

            HSHE.id     = SHE.id;
            HSHE.number = SHE_.hold;
            HSHE.date   = DLE.date;
            HSHE.change = SHE.hold;
            HSHE.money  = DLE.money;
            historystockhold.Insert(HSHE);
            if (SHE_.name != null)
            {
                SHE.hold  = SHE.hold + SHE_.hold;
                SHE.money = Convert.ToDouble(SHE.money) + Convert.ToDouble(SHE_.money);
                stockhold.Update(SHE);
            }
            else
            {
                stockhold.Insert(SHE);
            }
            return(SHE);
            //StockHoldSet(SHE);
        }
Example #10
0
 //读取指定id持股
 public void StockHoldRead(ref StockHoldEntity SHE)
 {
     stockhold.Select(ref SHE);
 }