public async Task <IActionResult> SubmitSurvey(string id) { Survey survey = await SurveyService.GetSurvey(id); List <String> selectedRadios = new List <string>(); Dictionary <int, String> selectedOptions = new Dictionary <int, String>(); var i = 0; foreach (var question in survey.Questions) { i++; var qns = "qns" + i; selectedRadios.Add(qns); } // Obtains selected radio item value and stores in dictionary var j = 0; foreach (String radio in selectedRadios) { selectedOptions.Add(j, Request.Form[radio]); j++; } GenerateResult generateResult = new GenerateResult(selectedOptions, survey.Set); float score = await generateResult.GetScore(); switch (survey.Type) { case "openness": break; case "conscientiousness": break; case "extraversion": break; case "agreeableness": break; case "neuroticism": break; } ViewBag.score = score; ViewBag.message = generateResult.GetMessage(score); return(View("Result")); }
public ResultsPage(GenerateResult generateResult, User user) { InitializeComponent(); float score = AsyncContext.Run(generateResult.GetScore); MessageLabel.Text = generateResult.GetMessage(score); // Prepare data for chart var entries = new[] { new Microcharts.Entry(score) { Label = "Openness", ValueLabel = score.ToString(), Color = SKColor.Parse("#2c3e50") }, new Microcharts.Entry(2) { Label = "Conscientiousness", ValueLabel = "2", Color = SKColor.Parse("#77d065") }, new Microcharts.Entry(3) { Label = "Extraversion", ValueLabel = "3", Color = SKColor.Parse("#b455b6") }, new Microcharts.Entry(4) { Label = "Agreeableness", ValueLabel = "4", Color = SKColor.Parse("#3498db") }, new Microcharts.Entry(5) { Label = "Neuroticism", ValueLabel = "5", Color = SKColor.Parse("#d42f2f") } }; // Create a radar chart var chart = new RadarChart() { Entries = entries }; ChartView chartView = new ChartView { HeightRequest = 140, Chart = chart }; ResultsStack.Children.Add(chartView); Button doneButton = new Button { Text = "Done", FontSize = 16, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; doneButton.Clicked += async(sender, e) => { // Play sound effect var assembly = typeof(AdventureLearn).GetTypeInfo().Assembly; Stream audioStream = assembly.GetManifestResourceStream("AdventureLearn.Sounds." + "button.mp3"); var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current; player.Load(audioStream); player.Play(); await Navigation.PushAsync(new WelcomePage(user)); }; ResultsStack.Children.Add(doneButton); }