Exemple #1
0
        public IActionResult Index()
        {
            ViewBag.SuccessBody = ApiCalls.GetDestinationFlights();

            var flightsOrigins = ApiCalls.GetDestinationOrigins();

            List <string> dests = new List <string>();

            List <List <double?> > counts = new List <List <double?> >();

            List <string> origins = new List <string>();

            foreach (var flightsOrigin in flightsOrigins)
            {
                if (!origins.Contains(flightsOrigin.Origin))
                {
                    origins.Add(flightsOrigin.Origin);
                }

                List <double?> countList = new List <double?>();

                foreach (var flight in flightsOrigin.Flights)
                {
                    countList.Add(flight.count);
                }

                counts.Add(countList);

                foreach (var flight in flightsOrigin.Flights)
                {
                    if (!dests.Contains(flight.Destination))
                    {
                        dests.Add(flight.Destination);
                    }
                }
            }

            Chart chart1 = BarCharts.BuildColorfulBarChartWithManyDatasets(dests, counts, origins);

            ViewData["chart1"] = chart1;

            return(View());
        }
        public IActionResult Index()
        {
            //Create First Chart
            var monthlyFlights = ApiCalls.GetMonthlyFlights();

            var monthsNames = GetMonthsNames(monthlyFlights);

            var counts = GetFlightsCounts(monthlyFlights);

            var chart1 = BarCharts.BuildColorfulBarChart(monthsNames, counts);

            //Craete Second Chart
            var monthlyFlightsOrigins = ApiCalls.GetMonthlyFlightsOrigin();


            var countsByOrigin = GetFlightsCountsByOrigin(monthlyFlightsOrigins, out var origins);

            var chart2 = BarCharts.BuildColorfulBarChartWithManyDatasets(monthsNames, countsByOrigin, origins);

            var chart3 = BarCharts.GetStackedBarChart(monthsNames, countsByOrigin, origins);

            var countsByMonth = GetCountsByMonth(countsByOrigin);

            var sortedCountedByMonth = countsByMonth
                                       .SelectMany(inner => inner.Select((item, index) => new { item, index }))
                                       .GroupBy(i => i.index, i => i.item)
                                       .Select(g => g.ToList())
                                       .ToList();

            var chart4 = BarCharts.GetStackedBarChart(monthsNames, sortedCountedByMonth, origins);

            ViewData["chart1"] = chart1;

            ViewData["chart2"] = chart2;

            ViewData["chart3"] = chart3;

            ViewData["chart4"] = chart4;

            return(View());
        }