public GraphsPage() { InitializeComponent(); GraphsViewModel = new GraphsViewModel(); DataContext = GraphsViewModel; }
public Graphs() { vm = new GraphsViewModel(model); InitializeComponent(); this.DataContext = vm; }
//Het afprinten van een pdf gebeurd door deze methode public IActionResult PrintPdf() { GraphsViewModel graphsView = new GraphsViewModel(); // Als de sessie verlopen is en de gebruiker wenst een pdf bekijken dan wordt een nullpointer gegeven, vandaar de error catching try { // Ophalen nodige data uit Sessie en de bool PdfFormat op true plaatsen zodanig bepaalde zaken weg gelaten worden in de pdf (header,footer,...) graphsView = HttpContext.Session.GetObjectSingle <GraphsViewModel>("graphsView"); graphsView.PdfFormat = true; } catch (Exception e) { // Indien de sessie is verlopen wordt de gebruiker terug gestuurd naar de index pagina met een gepaste melding _possibleChoices = (Dictionary <string, List <object> >)HttpContext.Session.GetObjectDict <Dictionary <string, List <object> > >("_possibleChoices"); ViewData["Selections"] = _possibleChoices; ViewData["Error"] = e.Message; this.Index(); } // De pdf wordt gerenderd adhv Rotativa (een implementatie tool voor wkhtmltopdf. Sinds .net core2.0 doet wkhtmltopdf echter soms wat raar // De functie zal soms werken en soms niet, een duidelijke oplossing hiervoor is er nog niet. // CustomSwitches zijn opties die worden meegegeven aan Rotativa. No stop slow scripts zorgt ervoor dat scripts niet worden onderbroken // windows-status ready zorgt ervoor dat er gewacht wordt tot de Window een status heeft gelijk aan ready // dit wordt geset in de javascript in de view. return(new Rotativa.AspNetCore.ViewAsPdf("Graphs", graphsView) { CustomSwitches = "--no-stop-slow-scripts --window-status ready" }); // --no-pdf-compression }
public void RaisingChannelValueUpdatedEventForGraphedChannelAddsPoint() { var eventAggregator = A.Fake <IEventAggregator>(); var evt = new AddToGraphEvent(); A.CallTo(() => eventAggregator.GetEvent <AddToGraphEvent>()).Returns(evt); A.CallTo(() => eventAggregator.GetEvent <GraphCreatedEvent>()).Returns(new GraphCreatedEvent()); var dataAquisition = A.Fake <IDataAquisition>(); var channel = new InputChannel(); var viewModel = new GraphsViewModel(eventAggregator, dataAquisition); evt.Publish((channel, 0)); var time = DateTime.Now; dataAquisition.ChannelValueUpdated += Raise.With(new ChannelValueUpdatedEventArgs(channel, 3.0, time)); Assert.IsType <LineSeries>(viewModel.Graphs[0].Series[0]); var lineSeries = (LineSeries)viewModel.Graphs[0].Series[0]; var point = lineSeries.Points[0]; Assert.Equal(DateTimeAxis.ToDouble(time), point.X); Assert.Equal(3.0, point.Y); }
public FavoritesPageViewModel(TriggersViewModel triggersViewModel, GraphsViewModel graphsPageViewModel) { triggersViewModel.NeedUpdateItems = true; triggersViewModel.NeedUpdateItems = true; Items.Add(triggersViewModel); Items.Add(graphsPageViewModel); _isNew = true; }
public App() { var model = new FlightGearModel(new AsyncTcpFGClient(), new PluginFlightAnomalyDetector()); GeneralVM = new GeneralViewModel(model); GraphsVM = new GraphsViewModel(model); PlayBackVM = new PlayBackViewModel(model); RudderVM = new RudderViewModel(model); StatisticsVM = new StatisticsViewModel(model); }
public string GetCorrectFilterString(TableViewModel table, GraphsViewModel graph, string filter) { if (table == null) { table = new TableViewModel(); } if (graph == null) { graph = new GraphsViewModel(); } string result = ""; string tableString = table.FilterString == null ? "" : table.FilterString; string graphString = graph.filterAsString == null ? "" : graph.filterAsString; string filterString = filter == null ? "" : filter; if (((tableString.Equals(filterString)) != (graphString.Equals(filterString)))) { if (tableString.Equals(filterString)) { result = graphString + " " + filterString; } else if (graphString.Equals(filterString)) { result = tableString + " " + filterString; } } else if ((!(tableString.Contains(filterString)) && !(graphString.Contains(filterString)))) { if (tableString.Count() > graphString.Count()) { result = result + tableString + " " + filterString; } else if (graphString.Count() > tableString.Count()) { result = result + graphString + " " + filterString; } else { result = result + tableString + " " + filterString; //beide zijn even lang en bevatten F nog niet } } else if (tableString.Count() > graphString.Count()) { result = tableString; } else if (graphString.Count() > tableString.Count()) { result = graphString; } else { result = tableString; // table en graph bevatten zelfde waarde } return(result.Trim()); }
public ActionResult Index() { var viewModel = new GraphsViewModel(); foreach (var testPlan in PlanDefinition.All) { var testPlanResults = GetResultsFor(testPlan); viewModel.AddGraphViewModel(testPlanResults); } return(View(viewModel)); }
public void SetVM(GraphsViewModel graphsVM) { this.vm = graphsVM; // FillList(); /* Binding dict = new Binding * { * Source = attributes * }; * atrributesBox.SetBinding(ComboBox.ItemsSourceProperty, dict); */ }
public void SubscribesToAddToGraphEvent() { var eventAggregator = A.Fake <IEventAggregator>(); var evt = A.Fake <AddToGraphEvent>(); A.CallTo(() => eventAggregator.GetEvent <AddToGraphEvent>()).Returns(evt); var viewModel = new GraphsViewModel(eventAggregator, A.Fake <IDataAquisition>()); A.CallTo(() => evt.Subscribe(A <Action <(InputChannel, int)> > .Ignored, A <ThreadOption> .Ignored, A <bool> .Ignored, A <Predicate <(InputChannel channel, int graphId)> > .Ignored)).MustHaveHappened(); }
public void PublishingAddToGraphEventWithId0CreatesNewGraph() { var eventAggregator = A.Fake <IEventAggregator>(); var evt = new AddToGraphEvent(); A.CallTo(() => eventAggregator.GetEvent <AddToGraphEvent>()).Returns(evt); var viewModel = new GraphsViewModel(eventAggregator, A.Fake <IDataAquisition>()); A.CallTo(() => eventAggregator.GetEvent <GraphCreatedEvent>()).Returns(new GraphCreatedEvent()); evt.Publish((new InputChannel(), 0)); Assert.Single(viewModel.Graphs); }
public void PublishingAddToGraphEventWithId0RaisesGraphCreatedEvent() { var eventAggregator = A.Fake <IEventAggregator>(); var evt = new AddToGraphEvent(); var graphCreated = A.Fake <GraphCreatedEvent>(); A.CallTo(() => eventAggregator.GetEvent <AddToGraphEvent>()).Returns(evt); A.CallTo(() => eventAggregator.GetEvent <GraphCreatedEvent>()).Returns(graphCreated); var viewModel = new GraphsViewModel(eventAggregator, A.Fake <IDataAquisition>()); evt.Publish((new InputChannel(), 0)); A.CallTo(() => graphCreated.Publish(1)).MustHaveHappened(); }
public ActionResult Index(GraphsViewModel model) { if (model == null || model.Names == null) { var names = Players.All() .OrderBy(p => p.Name) .Select(p => new CheckBoxViewModel { Checked = true, Text = p.Name }) .ToList(); model = new GraphsViewModel { Names = names, GraphType = GraphType.EloVsGames }; } return(View(model)); }
public GraphsPage() { InitializeComponent(); BindingContext = new GraphsViewModel(); }
// Wordt geladen als er gekozen is op wat men wil filteren plus ook als er gesorteerd wil worden eenmaal de tabel geladen is, de string sortOrder is optioneel // Indien er niets gekozen werd wordt de lijst gewoon ongesorteerd weergegeven public IActionResult Table(Home filter, string sortOrder) { string tempString = ""; slaView = false; _homesFiltered = (IEnumerable <Home>)HttpContext.Session.GetObject <IEnumerable <Home> >("_homesFiltered"); _viewModel = HttpContext.Session.GetObjectSingle <TableViewModel>("_viewModel"); try { // Als de filter niet null is uitvoeren, maw enkel de eerste maal dat data wordt geladen of indien er opnieuw naar de index werd gegaan // om opnieuw te filteren. // Dit zal dus nooit activeren als men bv wenst te sorteren met reeds eerdere gefilterde data if (!(filter.IsEmptyObject()) | _homesFiltered == null) { Home filterTemp = HttpContext.Session.GetObjectSingle <Home>("filter"); filterTemp = filterTemp == null ? new Home() : filterTemp; if (filterTemp.FirstFilter) { filter.FirstFilter = true; } if (filter.FirstFilter == false) { filter.CheckAndSetLastMonth(); if (filter.InvoicCenterOrganization == null | (filter.SupportCallOpenDate == null && filter.LastMonth == false)) { ViewData["Error"] = "Gelieve zowel een bedrijfsnaam als een start datum in te vullen bij uw eerste selectie."; return(View("Index", _home)); } else if (DateTime.Parse(filter.SupportCallOpenDate) < DateTime.Today.AddYears(-1)) { ViewData["Error"] = "Gelieve een datum te selecteren die minder dan een jaar geleden is."; return(View("Index", _home)); } _homesFiltered = _homeRepository.InitialFilter(filter); filter.FirstFilter = true; //Bijhouden van de filter HttpContext.Session.SetObject <Home>("filter", filter); // Bijhouden van gefilterde Home objecten HttpContext.Session.SetObject <IEnumerable <Home> >("_homesFiltered", _homesFiltered); _viewModel = new TableViewModel(_homesFiltered, filter); if (_viewModel.Data.Count > 0) { _viewModel.FilterString = GetCorrectFilterString(_viewModel, graphsView, filter.ToString()); HttpContext.Session.SetObject <TableViewModel>("_viewModel", _viewModel); return(View(_viewModel)); } else { filter.FirstFilter = false; HttpContext.Session.SetObject <Home>("filter", filter); } } // Het filteren van de data adhv de meegeven filter. //_homesFiltered = _homeRepository.Filter(filter); List <List <string> > setProps = this.GetSetPropertiesAsString(filter); _homesFiltered = _homeRepository.getFiltered(setProps[0].ToArray(), setProps[1], _homesFiltered); // Het opslaan van de filter zodanig dit kan weergegeven worden boven de data //chosenFilter = filter.ToString(); // Het doorgeven van de gekozen filter als string aan de view via een ViewBag (zodat dit kan weergegeven worden) //ViewBag.filter = chosenFilter; if (_homesFiltered.Count() > 0) { //Bijhouden van de filter HttpContext.Session.SetObject <Home>("filter", filter); // Bijhouden van gefilterde Home objecten HttpContext.Session.SetObject <IEnumerable <Home> >("_homesFiltered", _homesFiltered); } } // Controleren of er al een viewModel bestaat, indien dit niet zo is maken we een nieuw aan gebaseeerd op de gefilterde data. if (_viewModel == null) { _viewModel = new TableViewModel(_homesFiltered, _filter); HttpContext.Session.SetObject <TableViewModel>("_viewModel", _viewModel); } // Controleren of de data in het viewmodel gelijk is aan de net gefilterde data. Anders werden er soms verkeerde resultaten getoond. Dit bijvoorbeeld // Als er verkeerde gegevens werden ingegeven, dan werd de table gewoon getoond met de gegevens van de vorige search ipv een foutmelding te geven else if (!(_homesFiltered.SequenceEqual(_viewModel.Data))) { _viewModel = new TableViewModel(_homesFiltered, filter); HttpContext.Session.SetObject <TableViewModel>("_viewModel", _viewModel); } //Kijken of de search resultaten opgaf en een gepaste reactie geven indien dit niet het geval was. if (CheckInput(filter)) { _filter = HttpContext.Session.GetObjectSingle <Home>("filter"); if (_filter == null) { _filter = new Home(); } return(View("Index", _filter)); } } catch (Exception e) { ViewData["Error"] = "Er werden geen resultaten gevonden voor deze filter." + e.Message; RedirectToActionPermanent("Index"); } if (_viewModel == null) { _viewModel = new TableViewModel(_EmptyEnumerable, _home); } graphsView = HttpContext.Session.GetObjectSingle <GraphsViewModel>("graphsView"); if (filter == null && _home == null) { tempString = ""; } else if (filter == null && _home != null) { tempString = _home.ToString(); } else { tempString = filter.ToString(); } _viewModel.FilterString = GetCorrectFilterString(_viewModel, graphsView, tempString); HttpContext.Session.SetObject <TableViewModel>("_viewModel", _viewModel); return(View(_viewModel)); }
public GraphView(GraphsViewModel model) : this() { DataContext = model; }