using Muchinfo.MTPClient.Data; using Muchinfo.MTPClient.Data.Enums; using Muchinfo.MTPClient.Data.Model; using Muchinfo.MTPClient.Infrastructure.Cache; using Muchinfo.MTPClient.Infrastructure.Users; using Muchinfo.MTPClient.Infrastructure.Utilities; using Muchinfo.MTPClient.IService; using Muchinfo.MTPClient.Resources; using Muchinfo.MTPClient.Service.Utilities; using Muchinfo.PC.Common.Extensions; using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows; using System.Windows.Input; namespace Muchinfo.MTPClient.Service { public class SystemService : ISystemService { /// /// 是否显示P+X标签 /// /// true if [is show p and x]; otherwise, false. public bool IsShowPAndX() { ////有权限的交易商品有配置P+X交割关系时,显示P+X交割标签 var goodsIds = CacheManager.CacheGoodsBaseInfos.Select(z => z.GoodsId); var pAndXIds = CacheManager.AllDeliveryRelationList.Where(z => z != null && z.RelationMode == eDeliveryContractLink.PAndX).Select(z => z.GoodsId); if (!goodsIds.Any() || !pAndXIds.Any()) return false; foreach (var id in pAndXIds) { uint uid; if (uint.TryParse(id.ToString(), out uid)) { if (goodsIds.Contains(uid)) return true; } } return false; } /// /// 获取行情底部分类菜单 /// /// List{QuoteCategoryItem}. /// public List GetQuoteCategoryMenus() { var list = new List(); var allgoods = BuildAllGoodsItems(); if (allgoods != null) list.Add(allgoods); var favoriteItem = BuildFavoriteItem(); if (favoriteItem != null) list.Add(favoriteItem); //添加外部交易所-资管 var exchangeMenuItems = GetExchangeMenuItems(); var sysMenuItems = exchangeMenuItems as IList ?? exchangeMenuItems.ToList(); if (exchangeMenuItems != null && sysMenuItems.Any()) { list.AddRange(sysMenuItems); } return list; } /// /// 获取多资金账户分类菜单 /// /// public List GetCaptialAccountMenus() { var list = new List(); if (UserManager.CurrentTradeAccount.FundsAccounts != null && UserManager.CurrentTradeAccount.FundsAccounts.Count > 0) { foreach (var item in UserManager.CurrentTradeAccount.FundsAccounts) { list.Add(new SysMenuItem(item.AccountId.ToString(), MenuCommandType.Query) { QuoteParameters = item.AccountId.ToString() }); } } return list; } /// /// 获取分析图表右键菜单 /// /// if set to true [is my selected]. /// if set to true [is comparison]. /// List{SysContextMenuItem}. /// public IEnumerable GetQuoteChartContextMenuItems(bool isMySelected, bool isNotComparison) { var result = new List(); //if (isMySelected) //{ // result.Add(new SysContextMenuItem(ContextMenuNames.RemoveFromMySelected, ContextMenuCommandType.RemoveFromMySelected)); //} //else //{ // result.Add(new SysContextMenuItem(ContextMenuNames.AddToMySelected, ContextMenuCommandType.AddToMySelected)); //} //result.Add(new SysContextMenuItem(ContextMenuNames.SwitchCycle, ContextMenuCommandType.SwitchCycle) //{ // Children = new List() // { // new SysContextMenuItem(ToolbarNames.CycleMinute1, ContextMenuCommandType.CycleMinute1), // //new SysContextMenuItem(ToolbarNames.CycleMinute3, ContextMenuCommandType.CycleMinute3), // new SysContextMenuItem(ToolbarNames.CycleMinute5, ContextMenuCommandType.CycleMinute5), // new SysContextMenuItem(ToolbarNames.CycleMinute10, ContextMenuCommandType.CycleMinute10), // new SysContextMenuItem(ToolbarNames.CycleMinute15, ContextMenuCommandType.CycleMinute15), // new SysContextMenuItem(ToolbarNames.CycleMinute30, ContextMenuCommandType.CycleMinute30), // //new SysContextMenuItem(ToolbarNames.CycleMinute60, ContextMenuCommandType.CycleMinute60), // //new SysContextMenuItem(ToolbarNames.CycleMinute90, ContextMenuCommandType.CycleMinute90), // //new SysContextMenuItem(ToolbarNames.CycleMinute120, ContextMenuCommandType.CycleMinute120), // //new SysContextMenuItem(ToolbarNames.CycleMinute180, ContextMenuCommandType.CycleMinute180), // //new SysContextMenuItem(ToolbarNames.CycleMinute240, ContextMenuCommandType.CycleMinute240), // new SysContextMenuItem(ToolbarNames.CycleHour, ContextMenuCommandType.CycleHour), // new SysContextMenuItem(ToolbarNames.CycleHour4, ContextMenuCommandType.CycleHour4), // new SysContextMenuItem(ToolbarNames.CycleDay, ContextMenuCommandType.CycleDay), // new SysContextMenuItem(ToolbarNames.CycleWeek, ContextMenuCommandType.CycleWeek), // new SysContextMenuItem(ToolbarNames.CycleMonth, ContextMenuCommandType.CycleMonth), // //new SysContextMenuItem(ToolbarNames.CycleQuarter, ContextMenuCommandType.CycleQuarter), // new SysContextMenuItem(ToolbarNames.CycleYear, ContextMenuCommandType.CycleYear), // //new SysContextMenuItem(ToolbarNames.CycleCustom, ContextMenuCommandType.CycleCustom), // } //}); result.Add(new SysContextMenuItem(ContextMenuNames.ChangeGoods, ContextMenuCommandType.ChangeGoods)); //if (isNotComparison) //{ // result.Add(new SysContextMenuItem(ContextMenuNames.ComparisonGoods, // ContextMenuCommandType.ComparisonGoods)); //} //else //{ // result.Add(new SysContextMenuItem(ContextMenuNames.CancelComparison, // ContextMenuCommandType.CancelComparison)); //} //result.Add(new SysContextMenuItem(ContextMenuNames.GoodsNews, ContextMenuCommandType.GoodsNews)); //result.Add(new SysContextMenuItem(ContextMenuNames.DrawingTool, ContextMenuCommandType.DrawingTool) //{ // Children = new List() // { // new SysContextMenuItem(ContextMenuNames.Top, ContextMenuCommandType.DrawingToolTop), // new SysContextMenuItem(ContextMenuNames.Bottom, ContextMenuCommandType.DrawingToolBottom), // new SysContextMenuItem(ContextMenuNames.Left, ContextMenuCommandType.DrawingToolLeft ), // new SysContextMenuItem(ContextMenuNames.Right, ContextMenuCommandType.DrawingToolRight), // new SysContextMenuItem(ContextMenuNames.Hidden, ContextMenuCommandType.DrawingToolHidden), // } //}); result.Add(new SysContextMenuItem(ContextMenuNames.DataExport, ContextMenuCommandType.DataExport)); result.Add(new SysContextMenuItem(ContextMenuNames.ShowHandicap, ContextMenuCommandType.ShowHandicap)); result.Add(new SysContextMenuItem(ContextMenuNames.SelectIndicator, ContextMenuCommandType.SelectIndicator)); result.Add(new SysContextMenuItem(ContextMenuNames.EditIndicator, ContextMenuCommandType.EditIndicatorParam)); result.Add(new SysContextMenuItem(ContextMenuNames.ClearMainIndicator, ContextMenuCommandType.ClearMainIndicator)); return result; } /// /// 获取分析图表右键菜单 /// /// if set to true [is my selected]. /// if set to true [is comparison]. /// The command. /// List{SysContextMenuItem}. /// public List GetQuoteChartMenuItems(bool isMySelected, bool isNotComparison, ICommand command) { var result = new List(); // result.Add(new SysMenuItem(ContextMenuNames.ChangeGoods, MenuCommandType.ChangeGoods) { Command = command }); var sysLoad = new SysMenuItem(ContextMenuNames.LoadMoreData, MenuCommandType.LoadMoreData) { Command = command }; result.Add(sysLoad); var sysMenuCycles = new SysMenuItem(ContextMenuNames.SwitchCycle, MenuCommandType.Cycles); sysMenuCycles.Children = GetAnalysisCycle(command, sysMenuCycles); result.Add(sysMenuCycles); var indicator = new SysMenuItem(ContextMenuNames.SelectIndicator, MenuCommandType.Indecator); indicator.Children = new List() { new SysMenuItem(MenuNames.AnalysisIndicator_MA, MenuCommandType.MA), new SysMenuItem(MenuNames.AnalysisIndicator_MA4, MenuCommandType.MA4), new SysMenuItem(MenuNames.AnalysisIndicator_BOLL, MenuCommandType.BOLL), new SysMenuItem(MenuNames.AnalysisIndicator_MACD, MenuCommandType.MACD), new SysMenuItem(MenuNames.AnalysisIndicator_DMI, MenuCommandType.DMI), new SysMenuItem(MenuNames.AnalysisIndicator_OBV, MenuCommandType.OBV), new SysMenuItem(MenuNames.AnalysisIndicator_VOL, MenuCommandType.VOL), new SysMenuItem(MenuNames.AnalysisIndicator_RSI, MenuCommandType.RSI), new SysMenuItem(MenuNames.AnalysisIndicator_KDJ, MenuCommandType.KDJ), new SysMenuItem(MenuNames.AnalysisIndicator_CCI, MenuCommandType.CCI), new SysMenuItem(MenuNames.AnalysisIndicator_BIAS, MenuCommandType.BIAS), new SysMenuItem(MenuNames.AnalysisIndicator_PSY, MenuCommandType.PSY), new SysMenuItem(MenuNames.AnalysisIndicator_MTM, MenuCommandType.MTM), new SysMenuItem(MenuNames.AnalysisIndicator_WR, MenuCommandType.WR), }; result.Add(indicator); var reMoveIndicator = new SysMenuItem(ContextMenuNames.DeleteIndicator, MenuCommandType.RemoveIndecator) { Command = command }; result.Add(reMoveIndicator); return result; } /// /// 获取系统菜单 /// /// List{SysMenuItem}. public ObservableCollection GetSysMenuItems(List accessFuncMenus, ICommand command) { bool isListing = accessFuncMenus.Exists((item) => item.FuncMenuCode == UserManager.GetMenuCommandValue(MenuCommandType.ListingManage)); var result = new List(); //result.AddRange(BuildSystemMenu()); result.AddRange(BuildQuoteMenus(isListing)); //result.AddRange(BuildTradingMenus(accessFuncMenus, command)); result.AddRange(BuildErmcpMenu()); result.AddRange(BuildHelpMenus()); return result.ToObservableCollection(); //todo:暂时使用本地的 // var systemMenu= UserManager.AccessFuncMenus.FirstOrDefault((item) => item.SysCommandType == MenuCommandType.SysHeadMenu); //if (systemMenu != null && systemMenu.Children != null) //{ // systemMenu.Children.AddRange(BuildQuoteMenus()); ////构建行情菜单 // return systemMenu.Children.ToObservableCollection(); //} //return systemMenu.Children.ToObservableCollection(); } /// /// 获取工具栏按钮 /// /// List{ToolbarGroup}. public List GetToolbarGroups() { //粤国际:无此功能 return null; } /// /// 创建图表周期 /// /// public List GetAnalysisCycle() { return new List() { // new SysMenuItem(MenuNames.AnalysisCycle_TimeSharing, MenuCommandType.TimeSharingChart), new SysMenuItem(MenuNames.AnalysisCycle_1M, MenuCommandType.Minute1), new SysMenuItem(MenuNames.AnalysisCycle_5M, MenuCommandType.Minute5), new SysMenuItem(MenuNames.AnalysisCycle_15M, MenuCommandType.Minute15), new SysMenuItem(MenuNames.AnalysisCycle_30M, MenuCommandType.Minute30), new SysMenuItem(MenuNames.AnalysisCycle_60M, MenuCommandType.Minute60), new SysMenuItem(MenuNames.AnalysisCycle_120M, MenuCommandType.Minute120), new SysMenuItem(MenuNames.AnalysisCycle_240M, MenuCommandType.Minute240), new SysMenuItem(MenuNames.AnalysisCycle_Day, MenuCommandType.Day), new SysMenuItem(MenuNames.AnalysisCycle_Week, MenuCommandType.Week), new SysMenuItem(MenuNames.AnalysisCycle_Month, MenuCommandType.Month), new SysMenuItem(MenuNames.AnalysisCycle_Year, MenuCommandType.Year) }; } /// /// 创建图表周期 /// /// public List GetAnalysisCycle(ICommand command, SysMenuItem parent) { return new List() { new SysMenuItem(MenuNames.AnalysisCycle_TimeSharing, MenuCommandType.TimeSharingChart){Command = command,ParentItem = parent}, new SysMenuItem(MenuNames.AnalysisCycle_1M, MenuCommandType.Minute1){Command = command,ParentItem = parent}, new SysMenuItem(MenuNames.AnalysisCycle_5M, MenuCommandType.Minute5){Command = command,ParentItem = parent}, // new SysMenuItem(MenuNames.AnalysisCycle_15M, MenuCommandType.Minute15){Command = command}, new SysMenuItem(MenuNames.AnalysisCycle_30M, MenuCommandType.Minute30){Command = command,ParentItem = parent}, new SysMenuItem(MenuNames.AnalysisCycle_1H, MenuCommandType.Hour1){Command = command,ParentItem = parent}, // new SysMenuItem(MenuNames.AnalysisCycle_120M, MenuCommandType.Minute120){Command = command}, new SysMenuItem(MenuNames.AnalysisCycle_4H, MenuCommandType.Hour4){Command = command,ParentItem = parent}, new SysMenuItem(MenuNames.AnalysisCycle_Day, MenuCommandType.Day){Command = command,ParentItem = parent}, //new SysMenuItem(MenuNames.AnalysisCycle_Week, MenuCommandType.Week){Command = command}, //new SysMenuItem(MenuNames.AnalysisCycle_Month, MenuCommandType.Month){Command = command}, //new SysMenuItem(MenuNames.AnalysisCycle_Year, MenuCommandType.Year){Command = command}, }; } /// /// 获取行情列表右键菜单 /// /// if set to true [is my selected]. /// List{SysContextMenuItem}. /// public IEnumerable GetQuoteListContextMenuItems(bool isMySelected) { var result = new List(); if (ApplicationParameter.ShowMySelectedGoods) { result.Add(isMySelected ? new SysContextMenuItem(ContextMenuNames.RemoveFromMySelected, ContextMenuCommandType.RemoveFromMySelected) : new SysContextMenuItem(ContextMenuNames.AddToMySelected, ContextMenuCommandType.AddToMySelected)); } //result.Add(new SysContextMenuItem(ContextMenuNames.AddToAlert, ContextMenuCommandType.AddToAlert)); //result.Add(new SysContextMenuItem(ContextMenuNames.EditDataGridHeader, ContextMenuCommandType.EditDataGridHeader)); return result; } /// /// Builds the favorite item. /// /// SysMenuItem. private SysMenuItem BuildFavoriteItem() { //添加"自选" if (!ApplicationParameter.ShowMySelectedGoods) return null; var myFavorites = FavoriteManager.GetMyFavorites(); if (myFavorites != null) { //目前只做一个自选 var first = myFavorites.FirstOrDefault(); if (first != null) { var item = new SysMenuItem(first.Name, MenuCommandType.SelectedGoodses) { QuoteParameters = first.Id.ToString() }; item.GoodsGroup = new MarketsInfoModel() { MarketName = first.Name, MarketID = first.Id, TradeMode = eTradeMode.MySelected }; return item; } } return null; } /// /// 显示所有商品 /// /// private SysMenuItem BuildAllGoodsItems() { if (!ApplicationParameter.ShowAllGoods) return null; var item = new SysMenuItem(ContextMenuNames.QuoteAllGoods, MenuCommandType.AllGoods) { //QuoteParameters = (int)eTradeMode.AllGoods + string.Empty }; item.GoodsGroup = new MarketsInfoModel() { MarketName = ContextMenuNames.QuoteAllGoods, MarketID = (uint) eTradeMode.AllGoods, TradeMode = eTradeMode.AllGoods }; return item; } /// /// P+X模式显示 /// /// SysMenuItem. private SysMenuItem BuildDeliveryMode() { var item = new SysMenuItem(ContextMenuNames.QuotePAndX, MenuCommandType.SelectedGoodses); item.GoodsGroup = new MarketsInfoModel() { MarketName = ContextMenuNames.QuotePAndX, MarketID = (uint)eTradeMode.QuotePAndX, TradeMode = eTradeMode.QuotePAndX, IsDeliveryMode = true }; return item; } /// /// 显示托管计划 /// /// private SysMenuItem BuildDepositItems() { var itemDeposit = new SysMenuItem(Client_Resource.AResources_DepositPlanMarket, MenuCommandType.SelectedGoodses) { QuoteParameters = (int)eTradeMode.Deposit + string.Empty }; itemDeposit.GoodsGroup = new MarketsInfoModel() { MarketName = Client_Resource.AResources_DepositPlanMarket, MarketID = (uint)eTradeMode.Deposit, TradeMode = eTradeMode.Deposit }; return itemDeposit; } /// /// 构建帮助菜单 /// /// IEnumerable{SysMenuItem}. private IEnumerable BuildHelpMenus() { var result = new List(); var help = new SysMenuItem(MenuNames.Help); result.Add(help); help.Children = new List() { new SysMenuItem(MenuNames.HelpAboutUs, MenuCommandType.AboutUs), // new SysMenuItem(MenuNames.HelpEscapeClause, MenuCommandType.EscapeClause) //new SysMenuItem(MenuNames.HelpUserGuide , MenuCommandType.UserGuide), //new SysMenuItem(MenuNames.HelpOnlineCS, MenuCommandType.OnlineCS), }; if (UserManager.IsAccountLogin) ////只有账号登录才显示网页 { help.Children.Add(new SysMenuItem(MenuNames.HelpOfficalWeb, MenuCommandType.OfficalWeb)); } return result; } /// /// 构建行情菜单 /// /// IEnumerable{SysMenuItem}. private IEnumerable BuildQuoteMenus(bool IsListing) { var result = new List(); var quoteItem = new SysMenuItem(MenuNames.Quotation) { Children = new List() }; var allgoods = BuildAllGoodsItems(); if(allgoods != null) quoteItem.Children.Add(allgoods); ////有权限的交易商品有配置P+X交割关系时,显示P+X交割标签 if (IsShowPAndX()) quoteItem.Children.Add(BuildDeliveryMode()); var favoriteItem = BuildFavoriteItem(); if (favoriteItem != null) quoteItem.Children.Add(favoriteItem); // 获取外币交易所的列表 var exchangeMenuItems = GetExchangeMenuItems(); if (exchangeMenuItems != null && exchangeMenuItems.Any()) { quoteItem.Children.AddRange(exchangeMenuItems); } result.Add(quoteItem); if (ApplicationParameter.IsShowDepositPlanMarket) { var deposit = BuildDepositItems(); quoteItem.Children.Add(deposit); } return result; } /// /// 根据市场创建菜单 /// /// IEnumerable{SysMenuItem}. public IEnumerable GetMarketMenuItems(bool IsListing) { var result = new List(); var goodsGroups = CacheManager.CacheMarketsGroups;//需要先查市场才能有数据 if (goodsGroups != null && goodsGroups.Any()) { foreach (var goodsGroup in goodsGroups) { if ((int)goodsGroup.TradeMode != 4) { var item = new SysMenuItem(goodsGroup.MarketName, MenuCommandType.MarketQuote) { QuoteParameters = goodsGroup.MarketID.ToString() }; item.GoodsGroup = goodsGroup; //市场权限过滤,登陆后的账号市场权限 MTP2.0 if (CacheManager.CacheMarketsGroups != null && CacheManager.CacheAvailableMarketList.Contains(goodsGroup.MarketID)) { result.Add(item); } } } } //if (IsListing) //是否显示挂牌 //{ // var item = new SysMenuItem(Client_Resource.MarketGroupName_ListingMarket, MenuCommandType.MarketQuote) // { // QuoteParameters = -2 + string.Empty // }; // item.GoodsGroup = new MarketsInfoModel() { MarketID = -2, MarketName = Client_Resource.MarketGroupName_ListingMarket, TradeMode = eTradeMode.TRADEMODE_HANGTAG }; // result.Add(item); //} return result; } /// /// 根据扩展交易所创建菜单 /// /// IEnumerable{SysMenuItem}. public IEnumerable GetExchangeMenuItems() { var result = new List(); if (!ApplicationParameter.ShowExternalExchage) return result; var exchanges = CacheManager.CacheExchanges;//需要先查市场才能有数据 ApplicationParameter.MakeExChangeGroupGoodsMap();// 重组数据,重组的数据,会保存在CacheManager.CacheExChangeGroupGoods中 if (exchanges != null && exchanges.Any()) { var exChanges = CacheManager.CacheExChangeGroupGoods; foreach (var exchange in exchanges) { if (exChanges.Count > 0 && exChanges[0].IsExchangeHasGoods(exchange.ExchangeId)/*判断交易所下是否有交易商品*/) { var item = new SysMenuItem(exchange.ExchangeName, MenuCommandType.MarketQuote) { QuoteParameters = exchange.ExchangeId.ToString() }; var market = new MarketsInfoModel(); market.MarketID = (uint)exchange.ExchangeId; market.MarketName = exchange.ExchangeName; market.TradeMode = eTradeMode.TRADEMODE_ENTRUST_HEDGE; market.IsDeliveryMode = false; item.GoodsGroup = market; result.Add(item); } } } return result; } private IEnumerable BuildErmcpMenu() { var ermcpMenus = new List(); var manage = new SysMenuItem("现货") { IsEnabled = true, }; ermcpMenus.Add(manage); manage.Children = new List() { new SysMenuItem("现货管理", MenuCommandType.Manage), // new SysMenuItem(MenuNames.HelpEscapeClause, MenuCommandType.EscapeClause) //new SysMenuItem(MenuNames.HelpUserGuide , MenuCommandType.UserGuide), //new SysMenuItem(MenuNames.HelpOnlineCS, MenuCommandType.OnlineCS), }; return ermcpMenus; } /// /// 构建[系统]菜单 /// /// IEnumerable{SysMenuItem}. private IEnumerable BuildSystemMenu() { var defaultColor = UserManager.GetCurrentColorStyle(); var systemMenus = new List(); var system = new SysMenuItem(MenuNames.System); systemMenus.Add(system); system.Children = new List(); var themes = new SysMenuItem(MenuNames.SystemThemes) { IsEnabled = true, }; themes.Children = new List() { new SysMenuItem(MenuNames.SystemCoolBlack, MenuCommandType.CoolBlack){ ParentItem = themes, IsCheckable = true, IsChecked = defaultColor == ColorStyle.CoolBlack, }, new SysMenuItem(MenuNames.SystemDarkBlue, MenuCommandType.DarkBlue){ ParentItem = themes, IsCheckable = true, IsChecked = defaultColor==ColorStyle.DarkBlue, }, new SysMenuItem(MenuNames.SystemBlueWhite, MenuCommandType.BlueWhite) { ParentItem = themes, IsCheckable = true, IsChecked = defaultColor==ColorStyle.BlueWhite, } }; system.Children.Add(themes); if (UserManager.IsAccountLogin) { var defaultLayout = UserManager.GetCurrentLayoutStyle(); var layout = new SysMenuItem(MenuNames.Layout) { IsEnabled = true, }; layout.Children = new List() { new SysMenuItem(MenuNames.Horizontal, MenuCommandType.Horizontal) { ParentItem = layout, IsCheckable = true, IsChecked = defaultLayout == LayoutStyle.Horizontal, }, new SysMenuItem(MenuNames.Vertical, MenuCommandType.Vertical) { ParentItem = layout, IsCheckable = true, IsChecked = defaultLayout == LayoutStyle.Vertical, }, new SysMenuItem(MenuNames.Tradition, MenuCommandType.Tradition) { ParentItem = layout, IsCheckable = true, IsChecked = defaultLayout == LayoutStyle.Tradition, }, }; system.Children.Add(layout); system.Children.Add(new SysMenuItem(MenuNames.TradingChangePassword, MenuCommandType.ChangeTradePassword)); } //sysMenu.Add(MenuCommandType.Notice, // new SysMenuItem(MenuCommandType.Notice) { Command = AnnouncementCommand, ViewType = typeof(NoticesView), IsDialog = true }); system.Children.Add(new SysMenuItem(MenuNames.LockScreen, MenuCommandType.LockScreen) { }); system.Children.Add(new SysMenuItem(MenuNames.SystemReconnect, MenuCommandType.Reconnect)); system.Children.Add(new SysMenuItem(MenuNames.SystemLogout, MenuCommandType.Logout)); return systemMenus; } /// /// 构建交易菜单 /// /// /// IEnumerable{SysMenuItem}. private IEnumerable BuildTradingMenus(List accessFuncMenus, ICommand command) { //Edit by DK 20160721 // var enableMenuList = UserManager.AccessFuncMenus; UserManager.TradeFuncMenus = new List(); ////是否为游客登录 if (!UserManager.IsAccountLogin) { UserManager.TradeFuncMenus.Add(new SysMenuItem(MenuNames.TradingLogin, MenuCommandType.TradeLogin)); } if (accessFuncMenus != null && accessFuncMenus.Any()) { //获取-交易菜单=》权限列表 var tradeMenus = accessFuncMenus.FirstOrDefault((item) => item.FuncMenuCode == UserManager.GetMenuCommandValue(MenuCommandType.Trade)); if (tradeMenus != null) { foreach (var child in tradeMenus.Children) { var menus = new SysMenuItem(child.Title, UserManager.GetMenuCommandType(child.FuncMenuCode)) { Command = command }; var commandType = UserManager.GetMenuCommandType(child.FuncMenuCode);// (MenuCommandType)(Enum.Parse(typeof(MenuCommandType), child.FuncMenuCode)); switch (commandType) { case MenuCommandType.BuyIn: case MenuCommandType.Sellout: // case MenuCommandType.Cancel: ///菜单不显示撤单 case MenuCommandType.SaleApply: UserManager.TradeFuncMenus.Add(menus); break; } ////买入 //if (child.FuncMenuCode==(int)MenuCommandType.BuyIn) //{ // menuList.Add(); //} ////卖出 //if (m.Select(x => x.Title).Contains(MenuNames.Sellout)) //{ // menuList.Add(new SysMenuItem(MenuNames.Sellout, MenuCommandType.OrderClose)); //} ////撤销 //if (m.Select(x => x.Title).Contains(MenuNames.OrderCancel)) //{ // menuList.Add(new SysMenuItem(MenuNames.OrderCancel, MenuCommandType.OrderCancel) { IsEnabled = true }); //} ////申购 //if (m.Select(x => x.Title).Contains(MenuNames.SaleApply)) //{ // menuList.Add(new SysMenuItem(MenuNames.SaleApply, MenuCommandType.SaleApply) { IsEnabled = true }); //} } } } return new List() { new SysMenuItem(MenuNames.Trading) { IsEnabled = true, IsExpanded=true, Children = UserManager.TradeFuncMenus, //Children = new List() //{ // //new SysMenuItem(MenuNames.OrderOpen, MenuCommandType.OrderOpen), // //new SysMenuItem(MenuNames.OrderClose, MenuCommandType.OrderClose), // new SysMenuItem(MenuNames.BuyIn, MenuCommandType.OrderOpen), // new SysMenuItem(MenuNames.Sellout, MenuCommandType.OrderClose), // new SysMenuItem(MenuNames.OrderCancel, MenuCommandType.OrderCancel){ IsEnabled = true}, // // new SysMenuItem(MenuNames.Listing,MenuCommandType.Listing), // // new SysMenuItem(MenuNames.DeliveryApply, MenuCommandType.DeliveryApply), //通用版本使用通用交收 // // bug 13878 设计删除 // // new SysMenuItem(MenuNames.ReportQuery, MenuCommandType.ReportQuery) //} } }; } /// /// 右键交易菜单 /// /// public IEnumerable BuildQuoteTradeContextMenuItems(bool isMySelected) { var result = new List(); if (!UserManager.IsAccountLogin) { return result; //游客登录无菜单 } result.Add(new SysContextMenuItem(ContextMenuNames.Market_Purchase, ContextMenuCommandType.Market_Purchase)); result.Add(new SysContextMenuItem(ContextMenuNames.Market_SellOut, ContextMenuCommandType.Market_SellOut)); //result.Add(new SysContextMenuItem(ContextMenuNames.MarketClose, ContextMenuCommandType.MarketClose)); //result.Add(new SysContextMenuItem(ContextMenuNames.LimitClose, ContextMenuCommandType.LimitClose)); //new SysContextMenuItem(ContextMenuNames.CancelOrder, ContextMenuCommandType.CancelOrder) result.Add(new SysContextMenuItem(ContextMenuNames.ContextMenuQuoteBoard, ContextMenuCommandType.QuoteBoard)); result.Add(new SysContextMenuItem(ContextMenuNames.ContextMenuChart, ContextMenuCommandType.QuoteChart)); result.Add(new SysContextMenuItem(ContextMenuNames.MenuNamesGoodsInfo, ContextMenuCommandType.GoodsInfo)); if (ApplicationParameter.ShowMySelectedGoods) { result.Add(isMySelected ? new SysContextMenuItem(ContextMenuNames.RemoveFromMySelected, ContextMenuCommandType.RemoveFromMySelected) : new SysContextMenuItem(ContextMenuNames.AddToMySelected, ContextMenuCommandType.AddToMySelected)); } // 错误 #90858 //result.Add(new SysContextMenuItem(ContextMenuNames.MenuNamesQuoteTik, ContextMenuCommandType.QuoteTik)); ///分笔明细 ////刷新商品列表 result.Add(new SysContextMenuItem(ContextMenuNames.RefreshGoodsList, ContextMenuCommandType.RefreshGoodsList)); return result; } /// /// 挂牌点价右键菜单 /// /// public IEnumerable BuildListingContextMenuItems() { var result = new List(); if (!UserManager.IsAccountLogin) { return result; //游客登录无菜单 } result.Add(new SysContextMenuItem(Client_Resource.ListingMarket_QuotePriceBoard, ContextMenuCommandType.ListingQuoteBoard)); result.Add(new SysContextMenuItem(Client_Resource.ListingMarket_ListingTrade, ContextMenuCommandType.ListingApply)); //result.Add(new SysContextMenuItem(ContextMenuNames.MarketClose, ContextMenuCommandType.MarketClose)); //result.Add(new SysContextMenuItem(ContextMenuNames.LimitClose, ContextMenuCommandType.LimitClose)); //new SysContextMenuItem(ContextMenuNames.CancelOrder, ContextMenuCommandType.CancelOrder) result.Add(new SysContextMenuItem(Client_Resource.MenuNamesGoodsInfo, ContextMenuCommandType.GoodsInfo)); result.Add(new SysContextMenuItem(Client_Resource.MenuNamesRefresh, ContextMenuCommandType.RefreshGoodsList)); return result; } public List BuildFormChartMenuItems() { var result = new List(); return result; } #region Build DataGrid Headers #region Public Methods /// /// 获取抬头列表 /// /// Type of the market. /// IEnumerable{QuoteListHeader}. /// public IEnumerable GetQuoteListHeaders(eTradeMode marketType) { switch (marketType) { //全款转让[NEW MTP2.0] //case eTradeMode.Full_Transfer: case eTradeMode.TRADEMODE_MARKETMAKE: return GetOTCHeaders(); case eTradeMode.QuotePAndX: case eTradeMode.TRADEMODE_BIDDING: return GetBidHeaders(); case eTradeMode.MySelected: case eTradeMode.AllGoods: case eTradeMode.TRADEMODE_ENTRUST_HEDGE: return GetChannelHeaders(); case eTradeMode.Deposit: return GetDepositHeaders(); default: return GetOTCHeaders(); } } /// /// 交割抬头列表 /// /// /// public IEnumerable GetDeliveryQuoteListHeaders(eTradeMode marketType) { var listHeaders = GetQuoteListHeaders(marketType).ToList(); listHeaders.RemoveAt(0); ////移除序号 var listHeader = new QuoteListHeader(QuoteHeaderNames.DeliveryGoodsName, "DeliveryGoodsName") { ColorProperty = "NameColor", IsBold = false, Width = 80, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center }; listHeaders.Insert(0, listHeader); //合约单位 //var AgreeUnitHeader = new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitName") //{ // ColorProperty = "NameColor", // IsBold = false, // Width = 80, // TextAlignment = TextAlignment.Center, // HeadHorizontalAlignment = HorizontalAlignment.Center //}; //listHeaders.Insert(16, AgreeUnitHeader); return listHeaders; } /// /// 根据交易模式获取列表抬头类型 /// /// Type of the market. /// QuoteListHeaderType. public QuoteListHeaderType GetQuoteListHeaderType(eTradeMode marketType) { switch (marketType) { case eTradeMode.TRADEMODE_MARKETMAKE: return QuoteListHeaderType.OTC; case eTradeMode.QuotePAndX: case eTradeMode.TRADEMODE_BIDDING: return QuoteListHeaderType.Bid; //case eTradeMode.TRADEMODE_BIDDINGMARKETMAKE: // return QuoteListHeaderType.BidMarket; //case eTradeMode.MySelected: ////先使用OTC表头 ////return GetMySelectedHeaders(); //return QuoteListHeaderType.OTC; //case eTradeMode.TRADEMODE_SALE: // return QuoteListHeaderType.Sale; case eTradeMode.MySelected: case eTradeMode.AllGoods: case eTradeMode.TRADEMODE_ENTRUST_HEDGE: return QuoteListHeaderType.Channel; default: return QuoteListHeaderType.OTC; } } #endregion #region Private Methods /// /// 获取我的自选字段 /// /// List{QuoteListHeader}. private List GetMySelectedHeaders() { //我的自选择没有配置,手动生成 return new List() { new QuoteListHeader(QuoteHeaderNames.Order, "ShowIndex") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(QuoteHeaderNames.Code, "GoodsCode") {ColorProperty="GoodsCodeColor", IsBold = true, Width=50, TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(string.Empty, "MySelectedFlag") { Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.Name, "Name") { ColorProperty="NameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.CurrentPrice, "CurrentPriceDisplay") {SortProperty = "CurrentPrice", ColorProperty = "CurrentPriceColor", Width=80 }, new QuoteListHeader(QuoteHeaderNames.IncreasePercent, "IncreasePercentDisplay"){ SortProperty = "IncreasePercent", ColorProperty ="IncreasePercentColor", Width=80 }, new QuoteListHeader(QuoteHeaderNames.TotalTurnover, "TotalTurnoverDisplay"){ SortProperty = "TotalTurnover" , Width=80 }, new QuoteListHeader(QuoteHeaderNames.Open, "OpenDisplay") { ColorProperty="OpenColor", SortProperty = "Open", Width=80 }, new QuoteListHeader(QuoteHeaderNames.High, "HighDisplay") { ColorProperty = "HighColor", SortProperty = "High" , Width=80 }, new QuoteListHeader(QuoteHeaderNames.Low, "LowDisplay") { ColorProperty = "LowColor",SortProperty = "Low" , Width=80 }, new QuoteListHeader(QuoteHeaderNames.LastClose, "LastCloseDisplay"){SortProperty = "LastClose", Width=80 }, new QuoteListHeader(QuoteHeaderNames.IncreaseValue, "IncreaseValue") { ColorProperty="IncreaseValueColor", Width=80 }, new QuoteListHeader(QuoteHeaderNames.Amplitude, "AmplitudeDisplay"){ SortProperty = "Amplitude", Width=80 }, new QuoteListHeader(QuoteHeaderNames.Market, "ExchangeName"){ Width=80 }, new QuoteListHeader(QuoteHeaderNames.Sort, "SortName"){ Width=80 }, //new QuoteListHeader(QuoteHeaderNames.Date, "DateDisplay"){SortProperty = "Date", Width=80, TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Right}, }; } /// /// 获取OTC行情字段 /// /// List{QuoteListHeader}. private List GetOTCHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.OTC); //if (headers != null && headers.Any()) return headers; //序、商品代码、商品名称、买、卖、今开、昨收、最低、最高、 涨跌、涨跌幅、合约单位[new]、时间 , var otcHeaders = new List() { new QuoteListHeader(QuoteHeaderNames.Order, "ShowIndex") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(QuoteHeaderNames.Code, "GoodsCode") {HeadFlag = 1, ColorProperty="GoodsCodeColor", IsBold = true, Width=50, TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(string.Empty, "MySelectedFlag") {HeadFlag = 100, Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.Name, "Name") {HeadFlag = 2, ColorProperty="NameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.BuyPrice, "BidPriceDisplay") {HeadFlag = 3,SortProperty = "BidPrice", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.SellPrice, "AskPriceDisplay") {HeadFlag = 4,SortProperty = "AskPrice", ColorProperty = "AskPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.Date, "DateDisplay"){HeadFlag =5, SortProperty = "Date", Width=80, TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Right}, new QuoteListHeader(QuoteHeaderNames.Open, "OpenDisplay") {HeadFlag =6, ColorProperty="OpenColor", SortProperty = "Open",Width=80}, new QuoteListHeader(QuoteHeaderNames.LastClose, "LastCloseDisplay") {HeadFlag =7, SortProperty="LastClose",Width=80}, new QuoteListHeader(QuoteHeaderNames.Low, "LowDisplay") {HeadFlag =8, ColorProperty = "LowColor",SortProperty = "Low",Width=80}, new QuoteListHeader(QuoteHeaderNames.High, "HighDisplay") {HeadFlag =9, ColorProperty = "HighColor", SortProperty = "High", Width=80}, new QuoteListHeader(QuoteHeaderNames.IncreaseValue, "IncreaseValueDisplay") {HeadFlag =10, ColorProperty="IncreaseValueColor", SortProperty="IncreaseValue", Width=80}, new QuoteListHeader(QuoteHeaderNames.IncreasePercent, "IncreasePercentDisplay"){HeadFlag =11, SortProperty = "IncreasePercent", ColorProperty ="IncreasePercentColor",Width=80}, }; if (UserManager.IsAccountLogin) { var quoteHeader = new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitDisplay") { HeadFlag = 12, Width = 80, IsBold = false, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center }; //合约单位[new] otcHeaders.Add(quoteHeader); } return GetConfigHeaders(ApplicationParameter.MakeMarketQuoteHeaders, otcHeaders); } /// /// 获取竞价行情字段 /// /// System.Collections.Generic.List{Muchinfo.MTPClient.Data.Model.QuoteListHeader}. private List GetBidHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.Bid); //if (headers != null && headers.Any()) return headers; var bidHeader = new List() { new QuoteListHeader(QuoteHeaderNames.Order, "ShowIndex") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(QuoteHeaderNames.Code, "GoodsCode") {HeadFlag =1, ColorProperty="GoodsCodeColor", IsBold = true, Width=50, TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(string.Empty, "MySelectedFlag") {HeadFlag =100, Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.Name, "Name") {HeadFlag =2, ColorProperty="NameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.BuyPrice, "BidPriceDisplay") {HeadFlag =3, SortProperty = "BidPrice", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.BuyVolume, "BidVolumeDisplay") {HeadFlag =4,SortProperty = "BidVolume", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.SellPrice, "AskPriceDisplay") { HeadFlag =5,SortProperty = "AskPrice", ColorProperty = "AskPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.SellVolume, "AskVolumeDisplay") { HeadFlag =6, SortProperty = "AskVolume", ColorProperty = "AskPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.CurrentPrice, "CurrentPriceDisplay") { HeadFlag =7, SortProperty = "CurrentPrice", ColorProperty = "CurrentPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.IncreaseValue, "IncreaseValueDisplay") { HeadFlag =8, ColorProperty="IncreaseValueColor", SortProperty="IncreaseValue", Width=80}, new QuoteListHeader(QuoteHeaderNames.IncreasePercent, "IncreasePercentDisplay"){HeadFlag =9, SortProperty = "IncreasePercent", ColorProperty ="IncreasePercentColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.Open, "OpenDisplay") {HeadFlag =10, ColorProperty="OpenColor", SortProperty = "Open",Width=80}, new QuoteListHeader(QuoteHeaderNames.LastClose, "LastCloseDisplay") {HeadFlag =11, SortProperty="LastClose",Width=80}, new QuoteListHeader(QuoteHeaderNames.Low, "LowDisplay") {HeadFlag =12, ColorProperty = "LowColor",SortProperty = "Low",Width=80}, new QuoteListHeader(QuoteHeaderNames.High, "HighDisplay") {HeadFlag =13, ColorProperty = "HighColor", SortProperty = "High",Width=80}, new QuoteListHeader(QuoteHeaderNames.TotalVolume, "TotalVolumeDisplay") {HeadFlag =14, SortProperty = "TotalVolume",Width=120 }, new QuoteListHeader(QuoteHeaderNames.TotalTurnover, "TotalTurnoverDisplay"){HeadFlag =15, SortProperty = "TotalTurnover",Width=120}, new QuoteListHeader(QuoteHeaderNames.PositionsDisplay, "PositionsDisplay"){ HeadFlag =16, SortProperty = "PositionsDisplay",Width=80}, new QuoteListHeader(QuoteHeaderNames.Inventory, "InventoryDisplay"){ HeadFlag =17,SortProperty = "Inventory",Width=120}, new QuoteListHeader(QuoteHeaderNames.RaisesPrice, "RaisesPriceDisplay"){HeadFlag =18,SortProperty = "RaisesPrice", ColorProperty = "RaisesPriceColor", Width=80}, new QuoteListHeader(QuoteHeaderNames.FallsPrice, "FallsPriceDisplay") { HeadFlag =19, SortProperty = "FallsPrice", ColorProperty = "FallsPriceColor", Width=80 }, new QuoteListHeader(QuoteHeaderNames.TurnoverRate, "TurnoverRateDisplay"){ HeadFlag =20,SortProperty = "TurnoverRateDisplay", Width=80}, //new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitDisplay") {HeadFlag =21,Width=80,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center},//合约单位[new] //new QuoteListHeader(QuoteHeaderNames.Date, "DateDisplay"){SortProperty = "Date", Width=80, TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Right}, }; if (UserManager.IsAccountLogin) { var quoteHeader = new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitDisplay") { HeadFlag = 21, Width = 80, IsBold = false, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center }; //合约单位[new] bidHeader.Add(quoteHeader); } return GetConfigHeaders(ApplicationParameter.BidQuoteHeaders, bidHeader); } /// /// 获取竞价行情字段-混合 /// /// System.Collections.Generic.List{Muchinfo.MTPClient.Data.Model.QuoteListHeader}. private List GetBidMarketHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.BidMarket); //if (headers != null && headers.Any()) return headers; var bidMarketHeader = new List() { new QuoteListHeader(QuoteHeaderNames.Order, "ShowIndex") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(QuoteHeaderNames.Code, "GoodsCode") {HeadFlag =1, ColorProperty="GoodsCodeColor", IsBold = true, Width=50, TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(string.Empty, "MySelectedFlag") {HeadFlag =100, Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.Name, "Name") {HeadFlag =2, ColorProperty="NameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.BuyPrice, "BidPriceDisplay") {HeadFlag =3, SortProperty = "BidPrice", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.BuyVolume, "BidVolumeDisplay") {HeadFlag =4,SortProperty = "BidVolume", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.SellPrice, "AskPriceDisplay") { HeadFlag =5,SortProperty = "AskPrice", ColorProperty = "AskPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.SellVolume, "AskVolumeDisplay") { HeadFlag =6, SortProperty = "AskVolume", ColorProperty = "AskPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.CurrentPrice, "CurrentPriceDisplay") { HeadFlag =7, SortProperty = "CurrentPrice", ColorProperty = "CurrentPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.IncreaseValue, "IncreaseValueDisplay") { HeadFlag =8, ColorProperty="IncreaseValueColor", SortProperty="IncreaseValue", Width=80}, new QuoteListHeader(QuoteHeaderNames.IncreasePercent, "IncreasePercentDisplay"){HeadFlag =9, SortProperty = "IncreasePercent", ColorProperty ="IncreasePercentColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.Open, "OpenDisplay") {HeadFlag =10, ColorProperty="OpenColor", SortProperty = "Open",Width=80}, new QuoteListHeader(QuoteHeaderNames.LastClose, "LastCloseDisplay") {HeadFlag =11, SortProperty="LastClose",Width=80}, new QuoteListHeader(QuoteHeaderNames.Low, "LowDisplay") {HeadFlag =12, ColorProperty = "LowColor",SortProperty = "Low",Width=80}, new QuoteListHeader(QuoteHeaderNames.High, "HighDisplay") {HeadFlag =13, ColorProperty = "HighColor", SortProperty = "High",Width=80}, new QuoteListHeader(QuoteHeaderNames.TotalVolume, "TotalVolumeDisplay") {HeadFlag =14, SortProperty = "TotalVolume",Width=120 }, new QuoteListHeader(QuoteHeaderNames.TotalTurnover, "TotalTurnoverDisplay"){HeadFlag =15, SortProperty = "TotalTurnover",Width=120}, // new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitDisplay") {HeadFlag =16,Width=80,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center},//合约单位[new] new QuoteListHeader(QuoteHeaderNames.RaisesPrice, "RaisesPriceDisplay") { HeadFlag =17, SortProperty = "RaisesPrice", ColorProperty = "RaisesPriceColor", Width=80 }, new QuoteListHeader(QuoteHeaderNames.FallsPrice, "FallsPriceDisplay") { HeadFlag =18, SortProperty = "FallsPrice", ColorProperty = "FallsPriceColor", Width=80 }, //new QuoteListHeader(QuoteHeaderNames.TurnoverRate, "TurnoverRateDisplay"){SortProperty = "TurnoverRateDisplay", Width=80}, //new QuoteListHeader(QuoteHeaderNames.Date, "DateDisplay"){SortProperty = "Date", Width=80, TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Right}, }; if (UserManager.IsAccountLogin) { var quoteHeader = new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitDisplay") { HeadFlag = 16, Width = 80, IsBold = false, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center }; //合约单位[new] bidMarketHeader.Add(quoteHeader); } return GetConfigHeaders(ApplicationParameter.BidMarketQuoteHeaders, bidMarketHeader); } /// /// 获取发售行情字段 /// /// List{QuoteListHeader}. private List GetSaleHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.Sale); //if (headers != null && headers.Any()) return headers; var saleHeader = new List() { new QuoteListHeader(QuoteHeaderNames.Order, "OrderNumber") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(QuoteHeaderNames.Code, "GoodsCode") {ColorProperty="GoodsCodeColor", IsBold = true, Width=80, TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center,HeadFlag = 1}, new QuoteListHeader(QuoteHeaderNames.Name, "GoodsName") { ColorProperty="GoodsNameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center ,HeadFlag =2}, // new QuoteListHeader(Client_Resource.Content_AgreeUnit, "AgreeUnitDisplay") {Width=80,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center ,HeadFlag =3}, new QuoteListHeader(Client_Resource.Content_SalePrice, "SalePrice") {Width=80,ColorProperty = "SalePriceColor" ,HeadFlag =4}, new QuoteListHeader(Client_Resource.Content_PublicQty, "IssueTotalDisplay") {Width=80,ColorProperty = "GoodsNameColor" ,HeadFlag =5}, new QuoteListHeader(Client_Resource.Content_ApplyStartTime, "ApplyStartTimeDisplay") {Width=120, SortProperty = "ApplyStartTime" ,HeadFlag =6}, new QuoteListHeader(Client_Resource.Content_ApplyEndTime, "ApplyEndTimeDisplay") { Width=120, SortProperty="ApplyEndTime" ,HeadFlag =7}, new QuoteListHeader(Client_Resource.Content_State, "RunStepsDisplay") { Width=80,IsBold=false, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center ,HeadFlag =8}, }; if (UserManager.IsAccountLogin) { var quoteHeader = new QuoteListHeader(QuoteHeaderNames.AgreeUnitName, "AgreeUnitDisplay") { HeadFlag = 3, Width = 80, IsBold = false, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center }; //合约单位[new] saleHeader.Add(quoteHeader); } return GetConfigHeaders(ApplicationParameter.SaleQuoteHeaders, saleHeader); } /// /// 获取挂牌抬头字段 /// /// List{QuoteListHeader}. private List GetDeliveryListingHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.Listing); //if (headers != null && headers.Any()) return headers; return new List() { new QuoteListHeader(QuoteHeaderNames.Order, "OrderNumber") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, //new QuoteListHeader(string.Empty, "MySelectedFlag") { Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, //new QuoteListHeader(QuoteHeaderNames.Name, "GoodsName") { ColorProperty="GoodsNameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.Code, "DeliveryGoodsCode") { IsBold=false, Width=80,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.DeliveryOrderView_DeliveryGoods, "DeliveryGoodsName") { ColorProperty="GoodsNameColor", IsBold=false, Width=140,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Listing_BidHighest, "BidHighestDisplay") { SortProperty ="BidHighest", Width=120,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Listing_AskLowest, "AskLowestDisplay") { SortProperty ="AskLowest", Width=120,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Listing_CurrentPrice, "CurrentPriceDisplay") {Width=120,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Listing_TotalVolume, "TotalVolume") {Width=120 ,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Listing_GoodsUint, "GoodsUnitName") {Width=60 ,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, }; } /// /// 从配置中取要显示的字段 /// /// 配置的字符串 /// 要筛选的字符串, /// 如果configHeaders为空串,返回babaseHeaders private List GetConfigHeaders(string configHeaders, List baseHeaders) { var diCheaders = baseHeaders.ToDictionary((item) => item.HeadFlag); if (!string.IsNullOrWhiteSpace(configHeaders)) { string[] headFlags = configHeaders.Split(','); int flaghead = -1; var lsHeaders = new List(); foreach (var headFlag in headFlags) { if (int.TryParse(headFlag, out flaghead)) { if (diCheaders.ContainsKey(flaghead)) { if (flaghead == 2 && diCheaders.ContainsKey(100)) ////名称加自选 { lsHeaders.Add(diCheaders[100]); } lsHeaders.Add(diCheaders[flaghead]); } } flaghead = -1; } return lsHeaders; } return baseHeaders; } /// /// 获取托管计划字段 /// /// List{QuoteListHeader}. private List GetDepositHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.Deposit); //if (headers != null && headers.Any()) return headers; return new List() { new QuoteListHeader(Client_Resource.Content_DepositName, "DepositName") { IsBold = false, Width=110, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_DepositGoodsCode, "DepositGoodsCode") { IsBold = true, Width=110, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_DepositGoodsName, "DepositGoodsName") { IsBold=true, Width=110,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_MaxDepositNumber, "MaxDepositNumber") {Width=120,TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_UnitName, "UnitName") {Width=80,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_DepositStartTime, "DepositStartTime") {Width=160, IsBold=false,TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Center }, new QuoteListHeader(Client_Resource.Content_DepositEndTime, "DepositEndTime") { Width=160, IsBold=false,TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_DepositReferPrice, "DepositReferPrice") { Width=120,IsBold=false, TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_SubscribeRate, "DisplaySubscribeRate") {Width=80,IsBold=false,TextAlignment = TextAlignment.Right, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Content_State, "DisplayDepositStatus") { Width=80,IsBold=false, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, }; } /// /// 获取挂牌抬头字段 /// /// List{QuoteListHeader}. private List GetListingHeaders() { //var headers = UserManager.GetQuoteListHeaders(QuoteListHeaderType.Listing); //if (headers != null && headers.Any()) return headers; return new List() { new QuoteListHeader(QuoteHeaderNames.Order, "OrderNumber") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(string.Empty, "MySelectedFlag") { Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, //new QuoteListHeader(QuoteHeaderNames.Name, "GoodsName") { ColorProperty="GoodsNameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.DeliveryOrderView_DeliveryGoods, "GoodsName") { ColorProperty="GoodsNameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.EntrustOrderFrame_Direction, "DirectionDisplay") { Width=80,IsBold=false,TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(Client_Resource.Listing_Price, "OrderPrice") {Width=80}, new QuoteListHeader(QuoteHeaderNames.CurrentPrice, "CurrentPriceDisplay") {Width=80}, new QuoteListHeader(Client_Resource.Listing_Lot, "OrderQty") {Width=80 }, new QuoteListHeader(Client_Resource.Listing_AvailQty, "AvailQty") {Width=80 }, new QuoteListHeader(Client_Resource.Listing_Goods_Discription, "RequesRemark") {Width=120 }, new QuoteListHeader(Client_Resource.Listing_Mode, "ListingModeDisplay") {Width=80,ToolTipProperty ="ListingModeToolTip" }, new QuoteListHeader(Client_Resource.Delisting_MoneyMode, "MoneyModeDisplay") {Width=120 }, new QuoteListHeader(Client_Resource.DeListing_StartTime, "StartTimeDisplay") {Width=160, SortProperty = "StartTime"}, new QuoteListHeader(Client_Resource.Delisting_EndTime, "EndTimeDisplay") { Width=160, SortProperty="EndTime"}, }; } /// /// 获取通道交易行情字段 /// /// System.Collections.Generic.List{Muchinfo.MTPClient.Data.Model.QuoteListHeader}. private List GetChannelHeaders() { var channelHeader = new List() { new QuoteListHeader(QuoteHeaderNames.Order, "ShowIndex") { Width= 50,HeadHorizontalAlignment = HorizontalAlignment.Center, TextAlignment = TextAlignment.Center }, new QuoteListHeader(QuoteHeaderNames.Code, "GoodsCode") {HeadFlag =1, ColorProperty="GoodsCodeColor", IsBold = true, Width=50, TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(string.Empty, "MySelectedFlag") {HeadFlag =100, Width= 15, TextAlignment = TextAlignment.Center, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.Name, "Name") {HeadFlag =2, ColorProperty="NameColor", IsBold=false, Width=80,TextAlignment = TextAlignment.Left, HeadHorizontalAlignment = HorizontalAlignment.Center}, new QuoteListHeader(QuoteHeaderNames.BuyPrice, "BidPriceDisplay") {HeadFlag =3, SortProperty = "BidPrice", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.BuyVolume, "BidVolumeDisplay") {HeadFlag =4,SortProperty = "BidVolume", ColorProperty = "BidPriceColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.SellPrice, "AskPriceDisplay") { HeadFlag =5,SortProperty = "AskPrice", ColorProperty = "AskPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.SellVolume, "AskVolumeDisplay") { HeadFlag =6, SortProperty = "AskVolume", ColorProperty = "AskPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.CurrentPrice, "CurrentPriceDisplay") { HeadFlag =7, SortProperty = "CurrentPrice", ColorProperty = "CurrentPriceColor",Width=80 }, new QuoteListHeader(QuoteHeaderNames.IncreaseValue, "IncreaseValueDisplay") { HeadFlag =8, ColorProperty="IncreaseValueColor", SortProperty="IncreaseValue", Width=80}, new QuoteListHeader(QuoteHeaderNames.IncreasePercent, "IncreasePercentDisplay"){HeadFlag =9, SortProperty = "IncreasePercent", ColorProperty ="IncreasePercentColor",Width=80}, new QuoteListHeader(QuoteHeaderNames.Open, "OpenDisplay") {HeadFlag =10, ColorProperty="OpenColor", SortProperty = "Open",Width=80}, new QuoteListHeader(QuoteHeaderNames.LastClose, "LastCloseDisplay") {HeadFlag =11, SortProperty="LastClose",Width=80}, new QuoteListHeader(QuoteHeaderNames.Low, "LowDisplay") {HeadFlag =12, ColorProperty = "LowColor",SortProperty = "Low",Width=80}, new QuoteListHeader(QuoteHeaderNames.High, "HighDisplay") {HeadFlag =13, ColorProperty = "HighColor", SortProperty = "High",Width=80}, new QuoteListHeader(QuoteHeaderNames.TotalVolume, "TotalVolumeDisplay") {HeadFlag =14, SortProperty = "TotalVolume",Width=120 }, // new QuoteListHeader(QuoteHeaderNames.Inventory, "InventoryDisplay"){ HeadFlag =17,SortProperty = "Inventory",Width=120},// 库存量暂时去掉吧。所有版本? new QuoteListHeader(QuoteHeaderNames.PositionsDisplay, "PositionsDisplay"){ HeadFlag =17,SortProperty = "PositionsDisplay",Width=120}, }; return GetConfigHeaders(ApplicationParameter.ChannelQuoteHeaders, channelHeader); } #endregion #endregion public void QeuryMtpSystemConfigs(string configid, System.Action> successAction, System.Action errorAction) { var queryCommonParams = new List(); queryCommonParams.Add(new QueryCommonParam() { ParamKey = "KeyId", ParamValue = configid }); QueryCommonHelper.QueryCommon(QueryStatement.QuerySystemConfig, queryCommonParams, new Action>((systemConfig) => { if (successAction != null) { successAction(systemConfig); } }), (error) => { if (errorAction != null) { error.RequestFunc = Client_Resource.SystemParamQuery; errorAction(error); } }); } public void QueryResxVer(Action> successAction, Action errorAction) { var queryCommonParams = new List(); QueryCommonHelper.QueryCommon(QueryStatement.SearchConstErrorCodeVer, queryCommonParams, new Action>( (verinfos) => { successAction(verinfos); }), (error) => { error.RequestFunc = Client_Resource.ResxVerRequest; if (errorAction != null) errorAction(error); }); } public void QueryResxDescrition(ResxVerType resxVerType, Action, ResxVerType> successAction, Action errorAction) { var statement = string.Empty; var queryCommonParams = new List(); switch (resxVerType) { case ResxVerType._const: statement = QueryStatement.SearchConstDesc; break; case ResxVerType.errorCode: statement = QueryStatement.SearchErrorCodeDesc; break; } QueryCommonHelper.QueryCommon(statement, queryCommonParams, new Action>( (descritions) => { successAction(descritions, resxVerType); }), (error) => { error.RequestFunc = string.Format(Client_Resource.ResxRequestfuc, (int)resxVerType); if (errorAction != null) errorAction(error); }); } /// /// 设置主页面的命令 /// /// /// public List GetHomeKeyBindings(ICommand command) { var keyCommands = new List(); //keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.Enter)) { CommandParameter = CommandFunc.OpenChart }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F10)) { CommandParameter = CommandFunc.GoodsF10 }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.Escape)) { CommandParameter = CommandFunc.BrowserBack }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.PageDown)) { CommandParameter = CommandFunc.QuotePageDown }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.PageUp)) { CommandParameter = CommandFunc.QuotePageup }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.Insert)) { CommandParameter = CommandFunc.QuoteInsert }); //// keyCommands.Add(new KeyBinding(command, Key.Tab, ModifierKeys.Control) { CommandParameter = CommandFunc.Tab }); //使用KeyUp事件操作 //keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.Enter)) { CommandParameter = CommondFunc.OpenOrder }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F7)) { CommandParameter = CommandFunc.HoldDetail }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F8)) { CommandParameter = CommandFunc.Amount }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F9)) { CommandParameter = CommandFunc.CompleteOrder }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F1)) { CommandParameter = CommandFunc.QuoteTik }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F2)) { CommandParameter = CommandFunc.Buy }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F3)) { CommandParameter = CommandFunc.Sell }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F4)) { CommandParameter = CommandFunc.Cancel }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F11)) { CommandParameter = CommandFunc.OpenTradeBoard }); keyCommands.Add(new KeyBinding(command, new KeyGesture(Key.F12)) { CommandParameter = CommandFunc.TranFloatOrder }); return keyCommands; } /// /// 获取常用指标 /// /// 命令 public List GetIndicator() { var indicator = new List() { new SysMenuItem(MenuNames.AnalysisIndicator_MA, MenuCommandType.MA), new SysMenuItem(MenuNames.AnalysisIndicator_BOLL, MenuCommandType.BOLL), new SysMenuItem(MenuNames.AnalysisIndicator_MACD, MenuCommandType.MACD), new SysMenuItem(MenuNames.AnalysisIndicator_KDJ, MenuCommandType.KDJ), new SysMenuItem(MenuNames.AnalysisIndicator_RSI, MenuCommandType.RSI), new SysMenuItem(MenuNames.AnalysisIndicator_PSY, MenuCommandType.PSY), new SysMenuItem(MenuNames.AnalysisIndicator_DMI, MenuCommandType.DMI), new SysMenuItem(MenuNames.AnalysisIndicator_VOL, MenuCommandType.VOL), }; return indicator; } } }