/// <summary> //常用游戏购买 /// </summary> /// <param name="gameId"></param> public async void GainGamesHotgame(Hotgame model) { try { if (model.Purchased == 2) { IStore store = BridgeFactory.BridgeManager.GetStoreManager(); var genrator = await store.GetGameFiles(model.id); if (!genrator.code.Equals("000")) { Msg.Info(genrator.Message); return; } var Results = JsonConvert.DeserializeObject <List <DwonloadEntity> >(genrator.result.ToString()); if (Results.Count == 0) { Msg.Info("游戏获取失败,请重试"); return; } if (CommonsCall.UserGames.Any(s => s.gameId.Equals(model.id))) { Msg.Info(model.title + "已经进入下载队列中"); return; } GameDwonloadViewModel viewModel = new GameDwonloadViewModel(); viewModel.PageCollection = Loginer.LoginerUser.UserGameList.Where(s => s.gameId.Equals(model.id)).First(); viewModel.dwonloadEntities = Results; viewModel.InitAsyncViewModel(); var dialog = ServiceProvider.Instance.Get <IModelDialog>("EGameDwonloadDlg"); dialog.BindViewModel(viewModel); var d = Dialog.Show(dialog.GetDialog()); viewModel.ShowList += (async() => { d.Close(); }); return; } var GameRoute = CommonsCall.ReadUserGameInfo(model.id.ToString()); if (!string.IsNullOrEmpty(GameRoute.Key)) { if (File.Exists(GameRoute.Key))//判断文件是否存在 { Process.Start(GameRoute.Key); } else { model.Purchased = 2; CommonsCall.DeleteSubKeyTree(GameRoute.Key); Msg.Info("游戏损坏,请重新安装游戏"); } } else { if (await Msg.Question("是否购买游戏")) { IStore store = BridgeFactory.BridgeManager.GetStoreManager(); var genrator = await store.BuyGame(model.id); model.Purchased = 2; Msg.Info(genrator.Message); if (genrator.code.Equals("000")) { if (genrator.result.Equals("888")) { return; } CommonsCall.BuyGame(genrator.result.ToString()); } } } } catch (Exception ex) { Msg.Error(ex); } }