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;
}
}
}