示例#1
0
        public GraphsPage()
        {
            InitializeComponent();

            GraphsViewModel = new GraphsViewModel();
            DataContext     = GraphsViewModel;
        }
示例#2
0
        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
        }
示例#4
0
        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));
        }
示例#9
0
        public void SetVM(GraphsViewModel graphsVM)
        {
            this.vm = graphsVM;
            // FillList();

            /*   Binding dict = new Binding
             * {
             *     Source = attributes
             * };
             * atrributesBox.SetBinding(ComboBox.ItemsSourceProperty, dict);          */
        }
示例#10
0
        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();
        }
示例#11
0
        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);
        }
示例#12
0
        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();
        }
示例#13
0
        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));
        }
示例#16
0
 public GraphView(GraphsViewModel model)
     : this()
 {
     DataContext = model;
 }