コード例 #1
0
        public Result Close(string token)
        {
            if (token != ConfigurationManager.AppSettings["CloseToken"])
            {
                return(Result(ApiResultEnum.InvalidRequest));
            }

            int status_trade = MonitorRA.GetStatusTrade();

            UserRA.FlushDatabase(new List <int>()
            {
                7, 8, (int)DateTime.Now.AddDays(1).DayOfWeek
            });
            if (status_trade != 0)
            {
                if (LogTradeDA.Close("系统"))
                {
                    MonitorRA.SetStatusTrade((int)StatusTradeEnum.Closed);
                    OpenCloseBiz.Close();
                    NLog.Info("系统自动收盘");
                    return(Result(ApiResultEnum.Success));
                }
            }
            return(Result(ApiResultEnum.Order_Closed));
        }
コード例 #2
0
        public Result Update(Model.DB.Unit model)
        {
            ApiResultEnum result = UnitDA.Update(model);

            if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0)
            {
                OpenCloseBiz.LoadUnit(model, false);
            }
            return(Result(result));
        }
コード例 #3
0
ファイル: Account.svc.cs プロジェクト: wshPrt/trading
        public Result Update(Model.DB.Account model)
        {
            model.created_by = user_id;
            ApiResultEnum result = AccountDA.Update(model);

            if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0)
            {
                OpenCloseBiz.LoadAccount(model, false);
            }
            return(Result(result));
        }
コード例 #4
0
ファイル: Global.asax.cs プロジェクト: wshPrt/trading
        protected void Application_Start(object sender, EventArgs e)
        {
            Config.Init();
            StockInfoBiz.Init();

            int status_trade = MonitorRA.GetStatusTrade();

            if (status_trade > 0)
            {
                OpenCloseBiz.Open();
            }
        }
コード例 #5
0
ファイル: Account.svc.cs プロジェクト: wshPrt/trading
        public Result <int> Add(Model.DB.Account model)
        {
            int id = 0;

            model.created_by = user_id;
            ApiResultEnum result = AccountDA.Add(model, ref id);

            if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0)
            {
                model.id = id;
                OpenCloseBiz.LoadAccount(model);
            }
            return(Result(result, id));
        }
コード例 #6
0
        public Result <int> Add(Model.DB.Unit model)
        {
            int id = 0;

            model.created_by        = user_id;
            model.status_order_enum = StatusOrderEnum.Allowed;
            ApiResultEnum result = UnitDA.Add(model, ref id);

            if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0)
            {
                model.id = id;
                OpenCloseBiz.LoadUnit(model);
            }
            return(Result(result, id));
        }
コード例 #7
0
        public Result UpdateStatusTrade(StatusTradeEnum status)
        {
            int status_trade = MonitorRA.GetStatusTrade();

            if (status_trade == 0)
            {
                if (status != StatusTradeEnum.Opening)
                {
                    return(Result(ApiResultEnum.Failed));
                }

                //开盘
                if (!LogTradeDA.Open(UserRA.Get(user_id.ToString(), "name")))
                {
                    return(Result(ApiResultEnum.Failed));
                }

                MonitorRA.SetStatusTrade((int)status);
                OpenCloseBiz.Open();
            }
            else
            {
                if (status == StatusTradeEnum.Opening)
                {
                    OpenCloseBiz.Open();
                    return(Result(ApiResultEnum.Success));
                }
                else if (status == StatusTradeEnum.Recovery)
                {
                    MonitorRA.SetStatusTrade((int)StatusTradeEnum.Opening);
                }
                else if (status == StatusTradeEnum.Pause)
                {
                    MonitorRA.SetStatusTrade((int)status);
                }
                else
                {
                    //收盘
                    if (!LogTradeDA.Close(UserRA.Get(user_id.ToString(), "name")))
                    {
                        return(Result(ApiResultEnum.Failed));
                    }
                    MonitorRA.SetStatusTrade((int)status);
                    OpenCloseBiz.Close();
                }
            }
            return(Result(ApiResultEnum.Success));
        }
コード例 #8
0
        public Result UpdateItems(Model.DB.AccountGroup model)
        {
            model.items = model.items.OrderBy(i => i.sort_buy).AsEnumerable().DistinctBy(i => i.account_id).ToList();
            ApiResultEnum result = AccountGroupDA.UpdateItems(model);

            if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0)
            {
                var units = UnitDA.List4AccountGroup(model.id);
                foreach (var kvp in units)
                {
                    UnitRA.UpdatePriorityStrategy(model.priority_strategy, "U_" + kvp.id);
                }
                AccountGroupRA.Delete4AccountGroup(model.id);
                List <Model.DB.AccountGroupItem> items = AccountGroupDA.ListItems4AccountGroup(model.id);
                foreach (Model.DB.AccountGroupItem item in items)
                {
                    OpenCloseBiz.LoadAccountGroupItem(item);
                }
                TradeBiz.RunCalculateValue();
            }
            return(Result(result));
        }