public MainWindow()
        {
            InitializeComponent();
            SizeToContent = SizeToContent.WidthAndHeight;
            myDataContext = new SimulationViewModel();
            DataContext   = myDataContext;
            myDataContext.TargetDistance = DefaultTargetDistance;
            myDataContext.TargetBearing  = DefaultTargetBearing;
            MyCanvas.SizeChanged        += CanvasSizeChanged;

            myTargetShip = new Ship(0, 0, 0, 0);
            myShip       = new Ship(0, 0, 0, 0);
            InitLines();
            InitEllipses(8);
            InitDegreeLables();
            InitTexboxes();
            InitParamsDictionary();

            // ReSharper disable once ObjectCreationAsStatement
            new DispatcherTimer(
                new TimeSpan(0, 0, 0, 0, 100),
                DispatcherPriority.Background,
                TimerTick,
                Dispatcher.CurrentDispatcher)
            {
                IsEnabled = true
            };

            myShownTimer = new Timer();
        }
Beispiel #2
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            //dependency injection timer
            var container = new UnityContainer();

            container.RegisterInstance <IUnityContainer>(container);
            container.RegisterType <ITimeService, TimeService>();
            UnityServiceLocator locator = new UnityServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => locator);


            Simulation simulation = new Simulation();


            SimulationViewModel vm = new SimulationViewModel(simulation);

            var main = new MainWindow();

            main.DataContext = vm;
            main.initSideWindows();



            main.Show();
        }
Beispiel #3
0
        public ActionResult simulator()
        {
            //var importClient = db.Import.OrderByDescending(d => d.Date).Where(c => c.Type == TypeImport.Client).First();
            //var proc = db.assort.Where(a => a.ImportId == importClient.Id).GroupBy(e => e.Ean13);
            List <AssortViewModelcs> Lassort = new List <AssortViewModelcs>();
            Import import = this.db.Import.OrderByDescending(d => d.Date).Where(c => c.Type == TypeImport.Client).OrderByDescending(d => d.Date).First();
            var    proc   = db.Procurement.ToList().GroupBy(e => e.Ean13);

            using (var context = new ScanDbContext())
            {
                Lassort = context.Database
                          .SqlQuery <AssortViewModelcs>("GETSimulator")
                          .ToList();
            }

            List <SimulationViewModel> LSimulationViewModel = new List <SimulationViewModel>();

            foreach (var item in Lassort)
            {
                SimulationViewModel sm = new SimulationViewModel();
                sm.Ean13     = item.Ean13;
                sm.label     = item.Label;
                sm.StockReel = item.quantity;
                //sm.Price = item.Price;
                sm.OrderedQte = 0;
                sm.QteSales   = 0;
                sm.M1         = 0;
                sm.M2         = 0;
                sm.M3         = 0;
                LSimulationViewModel.Add(sm);
            }

            return(PartialView("_simulator", LSimulationViewModel));
        }
        public async Task <IActionResult> Simulation()
        {
            ViewData["Title"] = "Simulation Module";

            var tournament = await fantasySoccerService.GetCurrentTournament();

            var numberOfRounds = await fantasySoccerService.GetNumberOfRoundsForATournament(tournament.ID);

            var viewModel = new SimulationViewModel
            {
                TournamentId   = tournament.ID,
                TournamentName = tournament.Name,
                CurrentRound   = tournament.CurrentRound,
                Rounds         = Enumerable.Range(1, numberOfRounds)
                                 .Select(r => new SelectListItem
                {
                    Text     = r.ToString(),
                    Value    = r.ToString(),
                    Selected = tournament.CurrentRound == r
                }
                                         )
            };

            return(View("Simulation", viewModel));
        }
Beispiel #5
0
        public void OpenSimulation()
        {
            var dialog = new OpenFileDialog()
            {
                Title  = "Open Simulation Configuration Settings file...",
                Filter = "JSON Files|*.json;*.js|All Files|*.*"
            };

            if (dialog.ShowDialog(Application.Current.MainWindow).GetValueOrDefault())
            {
                try
                {
                    var json  = File.ReadAllText(dialog.FileName);
                    var model = JsonConvert.DeserializeObject <Models.Simulation>(json);

                    var viewModel = new SimulationViewModel(Runtime)
                    {
                        Model       = model,
                        DisplayName = model.Name
                    };

                    ActivateItem(viewModel);
                }
                catch (Exception ex)
                {
                    Runtime.ShowError("Error opening file.", ex);
                }
            }
        }
        /// <summary>
        /// <c>Index</c> (GET) - "webová" metoda pro vykreslení formuláře, kde se zadávají parametry simulace (URL: /Simulation nebo /Simulation/Index; HTTP GET).
        /// </summary>
        /// <remarks><para>ViewModel: SimulationViewModels.cs, třída SimulationViewModel.</para><para>Views: Simulation/Index.cshtml + _IndexPartial.cshtml.</para><para>Pouze pro přihlášené uživatele.</para></remarks>
        //
        // GET: Simulation
        public ActionResult Index()
        {
            string resInitBE;

            Initialize();
            resInitBE = InitializeBackEnd(); // připojení k serveru s back-endem
            if (resInitBE != null)
            {
                TempData.Add("error", resInitBE); // chybové hlášení pro přesměrování
                return(RedirectToAction("Error", "Simulation"));
            }
            proxy_simulation.Close();            // odpojení od back-endu

            for (int a = 0; a < algo.Count; a++) // konverze dvojteček na mezery v názvech algoritmů
            {
                algo[a].AlgorithmName = ConvertAlgorithmName(algo[a].AlgorithmName);
            }
            // seznam senátů přihlášeného uživatele:
            Session["senates"] = null; // vyprázdnit data od minule (pokud již proběhla jiná simulace)
            Session["equiv"]   = null;
            GetSenates(true);          // explicitně vybereme data o senátech z DB (mohly nastat změny)

            // hodnoty pro View:
            ViewBag.alg_n   = algo.Count;
            ViewBag.sen_n   = mySenates.Count;
            ViewBag.Message = null;

            SimulationViewModel SVM = new SimulationViewModel(mySenates, 1, algo, 1); // implic. hodnoty do formuláře

            Session["senates"] = mySenates;
            Session["equiv"]   = SVM.IsEquiv;
            ViewBag.senates    = HtmlSenates(); // výpis vybraných senátů do HTML

            return(View(SVM));
        }
Beispiel #7
0
 public ShellViewModel(SimulationViewModel simulationViewModel, ResultDisplayViewModel resultDisplayViewModel, IEventAggregator eventAggregator)
 {
     SimulationTab = new TabViewModel <SimulationViewModel>("Simulation", simulationViewModel);
     ResultTab     = new TabViewModel <ResultDisplayViewModel>("Results", resultDisplayViewModel);
     eventAggregator.Subscribe(this);
     ActivateItem(SimulationTab);
 }
 public MainWindow(SimulationViewModel sim)
 {
     InitializeComponent();
     this.DataContext = sim;
     this.simulation  = sim;
     Start();
 }
Beispiel #9
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext == null)
            {
                throw new ArgumentNullException(nameof(bindingContext));
            }

            string jsonStr;

            using (var sr = new StreamReader(bindingContext.HttpContext.Request.Body))
            {
                jsonStr = sr.ReadToEnd();
            }

            if (string.IsNullOrEmpty(jsonStr))
            {
                return(Task.CompletedTask);
            }

            var json = JObject.Parse(jsonStr);

            var vm = new SimulationViewModel();

            vm.Trucks.AddRange(GetStandardTrucks((JArray)json["standardTrucks"]));
            vm.Trucks.AddRange(GetCustomTrucks((JArray)json["customTrucks"]));
            vm.Deliveries.AddRange(GetDeliveries((JArray)json["deliveries"]));

            bindingContext.Result = ModelBindingResult.Success(vm);

            return(Task.CompletedTask);
        }
Beispiel #10
0
        public void NewSimulation()
        {
            var viewModel = new SimulationViewModel(Runtime)
            {
                DisplayName = string.Format("Simulation {0:yyMMdd-HHmmss}", DateTime.Now)
            };

            ActivateItem(viewModel);
        }
Beispiel #11
0
        public MainWindow()
        {
            InitializeComponent();

            var filename = @"G:\Projects\HumanGenome\Protein-PDBs\2mgo.pdb";
            //var filename = @"G:\Projects\HumanGenome\AminoseqFiles\CFTR.aminoseq";
            ApproximatePeptide approximatePeptide;
            Peptide            peptide;

            if (filename.ToLowerInvariant().EndsWith(".pdb"))
            {
                peptide = PeptideLoader.Load(filename);
                peptide.Molecule.MarkBackbone(peptide.MoleculeReference);
                peptide.Molecule.PositionAtoms(peptide.MoleculeReference.FirstAtomId, peptide.MoleculeReference.LastAtomId);
                approximatePeptide = ApproximatePeptideBuilder.FromPeptide(peptide);
            }
            else
            {
                approximatePeptide = ApproximatePeptideBuilder.FromSequence(new string('A', 8), 1);
                //approximatePeptide = ApproximatePeptideBuilder.FromSequence(File.ReadAllLines(filename).Aggregate((a,b) => a + b));
                approximatePeptide.UpdatePositions();
                peptide = new ApproximatePeptideCompleter(approximatePeptide).GetFullPeptide();
            }

            var simulationSettings = new ApproximatePeptideSimulationSettings
            {
                TimeStep       = 2.To(SIPrefix.Femto, Unit.Second),
                SimulationTime = 10.To(SIPrefix.Nano, Unit.Second),
                ResetAtomVelocityAfterEachTimestep = false,
                UseCompactingForce   = true,
                UseRamachandranForce = true
            };
            var ramachadranDataDirectory           = @"G:\Projects\HumanGenome\ramachadranDistributions";
            var ramachandranPlotDistributionSource = new RamachandranPlotGradientDistributionFileSource(ramachadranDataDirectory);
            //var ramachandranPlotDistributionSource = new RamachandranPlotDistributionFixedSource(
            //    new RamachandranPlotFixedDistribution(AminoAcidName.Alanine, new UnitPoint2D(-57.To(Unit.Degree), -47.To(Unit.Degree))));
            //var simulationRunner = ApproximatePeptideFoldingSimulatorFactory.Create(
            //    approximatePeptide, simulationSettings, ramachadranDataDirectory);
            var simulationRunner = new ApproximatePeptideFoldingSimulator(approximatePeptide,
                                                                          simulationSettings,
                                                                          new CompactingForceCalculator(),
                                                                          new RamachandranForceCalculator(ramachandranPlotDistributionSource),
                                                                          new BondForceCalculator());

            //var simulationRunner = new MoleculeDynamicsSimulator(peptide.Molecule, new List<CustomAtomForce>(),
            //    new MoleculeDynamicsSimulationSettings
            //    {
            //        TimeStep = 2.To(SIPrefix.Femto, Unit.Second),
            //        SimulationTime = 10.To(SIPrefix.Pico, Unit.Second)
            //    });
            MoleculeViewModel = new MoleculeViewModel();
            //MoleculeViewModel.DrawAtoms(AtomExtractor.FromApproximatePeptide(approximatePeptide));
            MoleculeViewModel.DrawAtoms(AtomExtractor.FromMolecule(peptide.Molecule));
            simulationRunner.TimestepCompleted += (sender, args) => Application.Current.Dispatcher.BeginInvoke(new Action(() => MoleculeViewModel.DrawAtoms(args.Atoms)));
            SimulationViewModel = new SimulationViewModel(simulationRunner);
        }
Beispiel #12
0
        private async Task <SimulationViewModel> GetViewModel()
        {
            var model = new SimulationViewModel
            {
                Companies     = await _companyService.GetCompanies(),
                StartDate     = new DateTime(2006, 01, 01),
                EndDate       = DateTime.Today,
                Strategies    = await _strategyService.GetStrategies(CurrentUserId),
                CompanyGroups = await _companyService.GetCompanyGroups()
            };

            return(model);
        }
Beispiel #13
0
        public IActionResult Simulate(SimulationViewModel simulationViewModel)
        {
            if (ModelState.IsValid)
            {
                _simulationRunner.Simulate(simulationViewModel);
            }

            ModelState.Clear();
            simulationViewModel.UnitDescription1.IsAttacking = false;
            simulationViewModel.UnitDescription2.IsAttacking = false;

            return(View("Index", simulationViewModel));
        }
Beispiel #14
0
 private async Task <SimulationDto> ConvertViewModelToDto(SimulationViewModel viewModel)
 {
     return(new SimulationDto
     {
         StartDate = viewModel.StartDate,
         EndDate = viewModel.EndDate,
         SelectedStrategyId = viewModel.SelectedStrategyId,
         SelectedCompanyIds = viewModel.AllCompanies ?
                              (await _companyService.GetCompanies()).Select(c => c.Id).ToList() :
                              viewModel.SelectedCompanyIds,
         UserId = CurrentUserId,
         Budget = viewModel.Budget,
         HasMaximalTransactionLimit = viewModel.HasMaximalTransactonLimit,
         MaximalBudgetPerTransaction = viewModel.MaximalBudgetPerTransaction,
         HasMinimalTransactionLimit = viewModel.HasMinimalTransactionLimit,
         MinimalBudgetPerTransaction = viewModel.MinimalBudgetPerTransaction
     });
 }
Beispiel #15
0
        public async Task <ActionResult> RunSimulation(SimulationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Strategies = await _strategyService.GetStrategies(CurrentUserId);

                model.Companies = await _companyService.GetCompanies();

                model.CompanyGroups = await _companyService.GetCompanyGroups();

                return(View(model));
            }

            var results = await _simulationService.RunSimulation(await ConvertViewModelToDto(model));

            var resultsModel = await BuildSimulationResultViewModel(model, results);

            return(View("Results", resultsModel));
        }
Beispiel #16
0
        public IActionResult Index()
        {
#if DEBUG
            var model = new SimulationViewModel()
            {
                Group1 = new GroupViewModel()
                {
                    HitPoint  = 100,
                    UnitCount = 20
                },
                Group2 = new GroupViewModel()
                {
                    HitPoint  = 100,
                    UnitCount = 20
                },
                UnitDescription1 = new UnitDescriptionViewModel()
                {
                    Name        = "HobGob",
                    ArmorClass  = 17,
                    DamageBonus = 1,
                    DamageDice  = Dice.D6,
                    HitBonus    = 2,
                    HitPoint    = 5
                },
                UnitDescription2 = new UnitDescriptionViewModel()
                {
                    Name        = "HobGob",
                    ArmorClass  = 17,
                    DamageBonus = 1,
                    DamageDice  = Dice.D6,
                    HitBonus    = 2,
                    HitPoint    = 5
                },
            };
            return(View(model));
#else
            return(View());
#endif
        }
Beispiel #17
0
        public void Setup()
        {
            _diceRoller = new Mock <IDiceRoller>();

            _simulationModel = new SimulationViewModel()
            {
                Group1 = new GroupViewModel()
                {
                    HitPoint  = _unitCount1 * _hitPoint1,
                    UnitCount = _unitCount1
                },
                Group2 = new GroupViewModel()
                {
                    HitPoint  = _unitCount2 * _hitPoint2,
                    UnitCount = _unitCount2
                },
                UnitDescription1 = new UnitDescriptionViewModel()
                {
                    Name        = _name1,
                    ArmorClass  = _armorClass1,
                    DamageBonus = _damageBonus1,
                    DamageDice  = _damageDice1,
                    HitBonus    = _hitBonus1,
                    HitPoint    = _hitPoint1
                },
                UnitDescription2 = new UnitDescriptionViewModel()
                {
                    Name        = _name2,
                    ArmorClass  = _armorClass2,
                    DamageBonus = _damageBonus2,
                    DamageDice  = _damageDice2,
                    HitBonus    = _hitBonus2,
                    HitPoint    = _hitPoint2
                },
            };

            _simulationRunner = new SimulationRunner(_diceRoller.Object);
        }
        public void Simulate(SimulationViewModel simulationViewModel)
        {
            var sb = new StringBuilder();

            if (simulationViewModel.UnitDescription1.IsAttacking == true)
            {
                Simulate(simulationViewModel.UnitDescription1,
                         simulationViewModel.Group1,
                         simulationViewModel.UnitDescription2,
                         simulationViewModel.Group2,
                         sb);
            }
            else
            {
                Simulate(simulationViewModel.UnitDescription2,
                         simulationViewModel.Group2,
                         simulationViewModel.UnitDescription1,
                         simulationViewModel.Group1,
                         sb);
            }

            sb.AppendLine("----------------");
            simulationViewModel.Description += sb.ToString();
        }
Beispiel #19
0
 void SetupSimulation(object sender, RoutedEventArgs e)
 {
     DrawingTool.SetupDrawingTool(ref fieldCanvas);
     _simulation = new SimulationViewModel(ref fieldCanvas, 10);
 }
 public SimulatorView()
 {
     this.SVM = new SimulationViewModel();
     this.InitializeComponent();
 }
        public ActionResult Index(int NumCases, int NumIters, int?[] algos) //([Bind(Include = "NumCases,NumIters,alg[]")] SimulationViewModel SVM)
        {
            int                  i = 1;                                     // pro číslování chyb, které mohly nastat "mimo" během vyplňování formuláře
            string               resInitBE;
            List <Senate>        senatesToSim = new List <Senate>();
            List <AlgorithmInfo> algInfo      = new List <AlgorithmInfo>();

            ViewBag.Error = null;
            Initialize();
            resInitBE = InitializeBackEnd(); // připojení k serveru s back-endem
            if (resInitBE != null)
            {
                TempData.Add("error", resInitBE); // chybové hlášení pro přesměrování
                return(RedirectToAction("Error", "Simulation"));
            }
            proxy_simulation.Close();            // odpojení od back-endu

            for (int a = 0; a < algo.Count; a++) // konverze dvojteček na mezery v názvech algoritmů
            {
                algo[a].AlgorithmName = ConvertAlgorithmName(algo[a].AlgorithmName);
            }

            // seznam senátů přihlášeného uživatele (prioritně ze session, příp. z DB):
            GetSenates();             // nastaví vlastnost "mySenates"

            if (mySenates.Count == 0) // máme teď nějaké senáty?
            {
                ViewBag.Error += "Chyba" + i++.ToString() + ": v průběhu nastavování parametrů simulace došlo k odstranění senátů!<br>";
                ViewBag.sen_n  = 0;
            }

            if (NumCases < 1 || NumCases > 10000)
            {
                ViewBag.Error += "Chyba" + i++.ToString() + ": počet případů musí být číslo od 1 do 10000!<br>";
            }
            if (NumIters < 1 || NumIters > 10000)
            {
                ViewBag.Error += "Chyba" + i++.ToString() + ": počet iterací musí být číslo od 1 do 10000!<br>";
            }
            if (algo.Count == 0) // jsou algoritmy na serveru dostupné?
            {
                ViewBag.Error += "Chyba" + i++.ToString() + ": algoritmy pro simulaci nejsou dostupné! (Pravděpodobně došlo ke změně back-endu aplikace.)<br>";
                ViewBag.alg_n  = 0;
            }
            if (algo.Count > 0 && algos == null)
            {
                ViewBag.Error += "Chyba" + i++.ToString() + ": musíte vybrat alespoň jeden algoritmus!<br>";
            }

            // rozhodnutí o tom, zda se bude provádět simulace nebo se zpět zobrazí formulář (s chybou)
            if (ViewBag.Error != null)
            {
                SimulationViewModel SVM = new SimulationViewModel(mySenates, NumCases, algo, NumIters);
                ViewBag.senates = HtmlSenates();
                return(View(SVM)); // byla chyba ve formuláři nebo někdo smazal senáty nebo na serveru nejsou algoritmy
            }
            else
            {
                for (int k = 0; k < algos.Length; k++)
                {
                    // if (algos[k] == k)
                    algInfo.Add(algo[(int)algos[k]]); // do simulace půjdou jen vybrané algoritmy
                }
                foreach (WebSenateModels senat in mySenates)
                {
                    senatesToSim.Add(new Senate(senat.SenateName, true, senat.Load, senat.Acases)); // senáty do simulace (jiná třída na back-endu)
                }
                TempData["Senates"]  = senatesToSim;
                TempData["NumCases"] = NumCases;
                TempData["NumIters"] = NumIters;
                TempData["AlgInfo"]  = algInfo;
                return(RedirectToAction("Run")); // přesměrování na výsledky
            }
        }
Beispiel #22
0
        private async Task <SimulationResultViewModel> BuildSimulationResultViewModel(SimulationViewModel model, SimulationResultDto ret)
        {
            var ids = ret.CurrentCompanyQuantity.Keys.ToList();

            ids.AddRange(ret.TransactionsLog.Select(item => item.CompanyId));
            var companies = await _companyService.GetCompanies(ids);

            return(new SimulationResultViewModel
            {
                CurrentCompanyQuantity = ret.CurrentCompanies,
                Chart = new LineChartModel {
                    Name = "Budget", CompanyId = 0, Data = ret.BudgetHistory.Select(item => new[] { item.Key.ToJavaScriptTimeStamp(), item.Value }).ToList()
                },
                TransactionsLog = ret.TransactionsLog.Select(item => new SimulationTransaction
                {
                    Date = item.Date,
                    Price = item.Price,
                    Action = item.Action,
                    BudgetAfter = item.BudgetAfter,
                    Quantity = item.Quantity,
                    Company = companies.FirstOrDefault(x => x.Id == item.CompanyId),
                    Profit = item.Profit
                }).ToList(),
                StartBudget = model.Budget,
                TotalSimulationValue = ret.SimulationTotalValue,
                PercentageProfit = ret.PercentageProfit,
                AverageLossOnTransaction = ret.TransactionStatistics.AverageLossOnTransaction,
                AverageGainOnTransaction = ret.TransactionStatistics.AverageGainOnTransaction,
                MaximalSimulationValue = ret.MaximalSimulationValue,
                MinimalSimulationValue = ret.MinimalSimulationValue,
                SuccessTransactionPercentage = ret.TransactionStatistics.SuccessTransactionPercentage,
                FailedTransactionPercentage = ret.TransactionStatistics.FailedTransactionPercentage,
                KeepStrategyProfit = (double)ret.KeepStrategyProfit
            });
        }
Beispiel #23
0
 public MainWindow()
 {
     InitializeComponent();
     DataContext = new SimulationViewModel();
 }
 private void openSimulation(CMWrappedSimulation sim)
 {
     SimulationViewModel m = new SimulationViewModel(sim, _canCloseService);
     Models.Add(m);
     SelectedItem = m;
 }