示例#1
0
        private void FilterShowResult()
        {
            var lpGrid = XamlComponentsManager.GetManager().Get <Grid>(XamlComponentsType.LpGrid);

            // 获取数据库
            var newTypeIDs = LocalConfigLoadManager.GetConfigClass <TypeIDDBClass>();
            List <LpGroupTypeShow> groups = new List <LpGroupTypeShow>();

            foreach (var item in _lpItemsBuffer)
            {
                var iShow = new LpGroupTypeShow();
                // 获取物品名称和数量
                newTypeIDs.TryGet(item.type_id, out string name);
                iShow.Name    = name;
                iShow.Count   = item.quantity;
                iShow.IskCost = item.isk_cost;
                iShow.LpCpost = item.lp_cost;
                if (item.required_items != null)
                {
                    // 前置名和前置数量,以及前置总价
                    StringBuilder preNames  = new StringBuilder();
                    StringBuilder preCounts = new StringBuilder();
                    foreach (var preItem in item.required_items)
                    {
                        _dictLpItemRequestData.TryGetValue(preItem.type_id, out var jsonfpi);
                        if (jsonfpi != null)
                        {
                            // 这里需要有个变量来控制前置消耗是按照卖单还是买单
                            if (!Signal.LpPreSale)
                            {
                                iShow.PreCost += jsonfpi.buy.max * preItem.quantity;
                            }
                            else
                            {
                                iShow.PreCost += jsonfpi.sell.min * preItem.quantity;
                            }
                        }
                        newTypeIDs.TryGet(preItem.type_id, out string preN);
                        preNames.Append($"{preN}&");
                        preCounts.Append($"{preItem.quantity}&");
                    }
                    preNames.RemoveLast(1);
                    iShow.PreName = preNames.ToString();
                    preCounts.RemoveLast(1);
                    iShow.PreCount = preCounts.ToString();
                }
                _dictLpItemRequestData.TryGetValue(item.type_id, out var jsonfi);
                if (jsonfi != null)
                {
                    iShow.Buy  = jsonfi.buy.max * item.quantity;
                    iShow.Sale = jsonfi.sell.min * item.quantity;
                }
                groups.Add(iShow);
            }

            var queryLpGroupVM = lpGrid.Resources["queryLpGroupVM"] as ViewModel.Query.QueryLpGroupVM;

            queryLpGroupVM.TypeShowSources = groups;
            StatusManager.GetManager()?.ShowMsg($"请求数据完毕.....");
        }
示例#2
0
        /// <summary>
        /// 窗口绘制完毕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_ContentRendered(object sender, EventArgs e)
        {
            // 加载预选数据
            LocalConfigLoadManager.ReadYaml <Dictionary <int, NewTypeID> >("Resources/newTypeIDs.yaml", LocalConfigLoadManager.OnReadYamlFinished_NewTypeID);
            LocalConfigLoadManager.ReadYaml <Dictionary <int, NewMarketGroup> >("Resources/newMarketGroups.yaml", LocalConfigLoadManager.OnReadYamlFinished_NewMarketGroup);
            LocalConfigLoadManager.ReadYaml <List <Model.DataSources.Region> >("Resources/regionGalaxy.yaml", LocalConfigLoadManager.OnReadYamlFinished_RegionGalaxy);
            LocalConfigLoadManager.ReadYaml <Dictionary <int, NewNpcCorporations> >("Resources/newNpcCorporations.yaml", LocalConfigLoadManager.OnReadYamlFinished_NewNpcCorpGroup);
            LocalConfigLoadManager.ReadYaml <Dictionary <int, NewBuleprints> >("Resources/newBlueprints.yaml", LocalConfigLoadManager.OnReadYamlFinished_NewBlueprintsGroup);
            LocalConfigLoadManager.ReadYaml <Dictionary <int, TypeMaterials> >("Resources/typeMaterials.yaml", LocalConfigLoadManager.OnReadYamlFinished_TypeMaterials);

            LayoutSwitchManager.GetManager()?.Init();
        }
示例#3
0
        /// <summary>
        /// 蓝图制造组被选中,物品列表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ManufacturingGroupTree_Selected(object sender, RoutedEventArgs e)
        {
            var node = (e.OriginalSource as TreeViewItem).Header as MarketGroupNode;

            if (node != null && !node.IsGroup && node.TypeID != null)
            {
                //  MessageBox.Show(node.TypeID.ID.ToString());
                LocalConfigLoadManager.SS(node.TypeID.ID);
            }
            //if (node != null && node.IsGroup && node.Group.hasTypes)
            //    QueryManager.QueryStart(QueryType.Market, QueryType.Market.ToString(), node);
            //else if (node != null && !node.IsGroup && node.TypeID != null)
            //    QueryManager.QueryStart(QueryType.Market, QueryType.Market.ToString(), node.TypeID.ID.ToString());
        }
示例#4
0
        protected override void Init()
        {
            base.Init();
            var treeView = XamlComponentsManager.GetManager().Get <TreeView>(XamlComponentsType.MarketGroupTree);

            if (treeView != null)
            {
                treeView.ItemsSource = LocalConfigLoadManager.GroupMarketTypeIDs();
            }
            try
            {
                var marketGrid = XamlComponentsManager.GetManager().Get <Grid>(XamlComponentsType.MarketGrid);
                (marketGrid?.Resources["rgVM"] as ViewModel.DataSources.MarketGroupRegionGalaxyVM).Regions = LocalConfigLoadManager.GetConfigClass <RegionGalaxyDBClass>().Regions;
            }
            catch (Exception exp)
            {
                System.Windows.MessageBox.Show(exp.Message);
            }
        }
示例#5
0
        protected override void Init()
        {
            base.Init();

            var treeView = XamlComponentsManager.GetManager().Get <TreeView>(XamlComponentsType.ManufacturingGroupTree);

            try
            {
                if (treeView != null)
                {
                    // 想用多线程,就要添加VM
                    List <Datas.MarketGroupNode> nodes = new List <Datas.MarketGroupNode>();
                    nodes.Add(LocalConfigLoadManager.GroupMarketTypeIDs()?[0]);
                    treeView.ItemsSource = nodes;
                }
            }
            catch (Exception exp)
            {
                System.Windows.MessageBox.Show(exp.Message);
            }
        }
示例#6
0
        private void QueryMarketGroupCompleteMuti(string result)
        {
            counter++;
            var rList = JsonTools.ParseTo <List <JsonFormatType> >(result);
            // 更新UI
            var listView   = XamlComponentsManager.GetManager().Get <ListView>(XamlComponentsType.MarketGroupListView);
            var newTypeIDs = LocalConfigLoadManager.GetConfigClass <TypeIDDBClass>();

            try
            {
                if (listView != null)
                {
                    lock (_queryMarketGroupResults)
                    {
                        foreach (var node in rList)
                        {
                            newTypeIDs.TryGet(node.buy.forQuery.types[0], out string name);
                            _queryMarketGroupResults.Add(new MarketGroupTypeShow(name, node.sell.min, node.buy.max));
                        }
                    }
                }
                StatusManager.GetManager()?.ShowMsg($"正在查询第[{counter}/{times}]批次数据.....");
            }
            catch { }

            try
            {
                if (counter >= times)
                {
                    querying = false;
                    var marketGrid         = XamlComponentsManager.GetManager().Get <Grid>(XamlComponentsType.MarketGrid);
                    var queryMarketGroupVM = marketGrid.Resources["queryMarketGroupVM"] as ViewModel.Query.QueryMarketGroupVM;
                    queryMarketGroupVM.TypeShowSources = _queryMarketGroupResults;
                    StatusManager.GetManager()?.ShowMsg("查询完毕....");
                }
            }
            catch { }
        }
示例#7
0
        private void ThreadSearchQueryIDs()
        {
            List <string> ids     = new List <string>();
            int           index   = 0;
            int           counter = 0;
            StringBuilder sb      = new StringBuilder();

            try
            {
                StatusManager.GetManager()?.ShowMsg("解析数据中.....");
                var typeIDs          = LocalConfigLoadManager.GetConfigClass <TypeIDDBClass>().TypeIDs;
                var marketGroupDB    = LocalConfigLoadManager.GetConfigClass <MarketGroupDBClass>().MarketGroupDB;
                var itemTypeFilterVM = XamlComponentsManager.GetManager().Get <Grid>(XamlComponentsType.RootGrid).Resources["itemTypeFilterVM"] as ItemTypeFilterVM;
                foreach (var no in typeIDs.Values)
                {
                    // 这里需要处理一下,因为服务端只支持单次处理200个
                    if (no != null && no.name != null && no.name.Contains(_mgSearchStr))
                    {
                        // 获取所在组,找到最上层的组
                        marketGroupDB.TryGetValue(no.marketGroupID, out var group);
                        if (group == null)
                        {
                            continue;
                        }
                        var resultGroup = GetRoot(group, marketGroupDB);
                        Filter.ItemTypeFilterDict.TryGetValue(itemTypeFilterVM.SelectedItem, out var rootID);
                        if (rootID == resultGroup.ID)
                        {
                            // 如果是所在组类型,则查询
                            sb.Append($"{no.ID},");
                            index++;
                        }
                    }
                    if (index > 199)
                    {
                        counter++;
                        index = 0;
                        ids.Add(sb.RemoveLast(1).ToString());
                        sb.Clear();
                    }
                }
            }
            catch (Exception e) { MessageBox.Show(e.Message); }

            // 处理最后一段数据
            ids.Add(sb.RemoveLast(1).ToString());

            StatusManager.GetManager()?.ShowMsg("获取远端服务器数据.....");
            // 设置批次查询计数器与查询状态,使用多线程查询时,禁止对同一个功能的后续查询
            // 等待批次处理完毕再进行下面的
            counter = 0;
            times   = ids.Count;
            // 清空数据缓存
            _queryMarketGroupResults = new List <MarketGroupTypeShow>();
            foreach (var str in ids)
            {
                if (string.IsNullOrEmpty(str))
                {
                    times--;
                    if (times <= 0)
                    {
                        StatusManager.GetManager()?.ShowMsg("没有匹配到请求的数据,本次请求取消,检查物品类型.....");
                        querying = false;
                        return;
                    }
                    continue;
                }


                new Thread(new ThreadStart(() => {
                    HttpRequestManager.SetQueryPost(str, RegionGalaxyID.MarketGroupRegionID, RegionGalaxyID.MarketGroupGalaxyID);
                    HttpRequestManager.Post("NULL", QueryMarketGroupCompleteMuti);
                })).Start();
                Thread.Sleep(100);
            }
        }
示例#8
0
        private void BtnClick_Test(object sender, RoutedEventArgs e)
        {
            var co = LocalConfigLoadManager.GetConfigClass <TypeMaterialsDBClass>().TypeMaterials.Count;

            MessageBox.Show(co.ToString());
        }