public async Task <int> SavePlateau(LandBase plateau)
        {
            var persistencePlateau = Mapper.Map <PersistencePlateau>(plateau);

            _context.Plateaus.Add(persistencePlateau);
            return(await _context.SaveChangesAsync());
        }
        public async Task <int> UpdatePlateau(LandBase plateau)
        {
            var persistencePlateau = _context.Plateaus.Include(t => t.Rovers).First(t => t.Id == plateau.Id);

            persistencePlateau.Size   = new Size(plateau.Size.Width, plateau.Size.Height);
            persistencePlateau.Rovers = plateau.Rovers.Select(Mapper.Map <Rover.Domain.Rover, PersistenceRover>).ToList();
            return(await _context.SaveChangesAsync());
        }
Ejemplo n.º 3
0
        public RelocatingSquadronsWindowViewModel(LandBase landBase)
        {
            this.Title = "配置転換中の航空機一覧";

            this.RelocatingSquadrons = ViewModelHelper.CreateReadOnlyDispatcherCollection(
                landBase.RelocatingSquadrons,
                x => new RelocatingSquadronViewModel(x),
                DispatcherHelper.UIDispatcher);
        }
Ejemplo n.º 4
0
        // 動的解析を行う処理
        private void RunMonteCarlo()
        {
            string output = "";

            try {
                // 艦隊を読み込み
                var      friendFleet = FriendFleet(InputDeckBuilderText);
                LandBase landBase    = null;
                if (IsLandBaseUse)
                {
                    landBase = LandBaseFleet(InputAirBaseText);
                }
                var enemyFleet = EnemyFleet(InputEnemyDataText);
                // 時間を記録する
                var sw = new System.Diagnostics.Stopwatch();
                sw.Start();
                // モンテカルロシミュレーションを行う
                var simulationSize = new int[] { 10000, 100000, 1000000, 10000000, 100000000 };
                output = Simulator.MonteCarlo(friendFleet, enemyFleet, landBase, simulationSize[SimulationSizeIndex]);
                // 先頭に計算時間を追加する
                sw.Stop();
                output = $"経過時間:{Math.Round(sw.Elapsed.TotalSeconds, 1)}秒\n" + output;
                // 結果を表示する
                List <string> nameList;
                List <List <List <double> > > histList;
                Simulator.ResultData(friendFleet, enemyFleet, landBase, simulationSize[SimulationSizeIndex], out nameList, out histList);
                //rv?.Close();
                var rvm = new ResultViewModel(
                    nameList,
                    histList,
                    InputDeckBuilderText,
                    InputAirBaseText,
                    InputEnemyDataText,
                    output);
                rv             = new ResultView();
                rv.DataContext = rvm;
                rvm.SetDelegate(rv.DrawChart, rv.CopyChart, SendFriend, SendLandBase, SendEnemy);
                rv.Show();
            }
            catch {
                output = "自艦隊 or 敵艦隊が正常に読み込めませんでした.";
            }
            // 表示
            MessageBox.Show(output, "AWSR");
        }
        public LandBaseViewModel(LandBase source)
        {
            this.source = source;
            this.source.Subscribe(nameof(LandBase.AirFleets), () =>
            {
                var fleets = this.source.AirFleets.Select(kvp => new AirFleetViewModel(kvp.Value)).ToArray();
                if (this.SelectedFleet == null)
                {
                    this.SelectedFleet = fleets.FirstOrDefault();
                }
                else
                {
                    this.SelectedFleet = fleets.FirstOrDefault(x => x.MapArea.Id == this.selectedMapId);
                }

                this.AirFleets = fleets;
            }, false).AddTo(this);
        }
Ejemplo n.º 6
0
 public void SetLand(LandBase board)
 {
     Land = board;
 }