public IActionResult Sing() { var file = Request.Form.Files[0]; var questionId = Request.Form["param"].FirstOrDefault(); byte[] audioArray = _service.GetAudioArray(file); bool answer; if (Int32.Parse(questionId) == 19) { answer = _service.ProcessRecording(audioArray, 330); } else if (Int32.Parse(questionId) == 20) { answer = _service.ProcessRecording(audioArray, 440); } else { answer = false; } int? userId = HttpContext.Session.GetInt32("UserId"); var user = _dbContext.Users.First(a => a.Id == userId); PropertyInfo info = user.GetType().GetProperty($"Answer{questionId}"); UserAnswers.AddAnswer(answer); info.SetValue(user, answer); _dbContext.SaveChanges(); return(Json("Ok")); }
public IActionResult Question(string firstbtn, string secondbtn) { int?userId = HttpContext.Session.GetInt32("UserId"); int id = int.Parse(this.RouteData.Values["id"].ToString()); var audiofile = AudioRepository.Audiofiles[id - 1]; var user = _dbContext.Users.First(a => a.Id == userId); PropertyInfo info = user.GetType().GetProperty($"Answer{id}"); if (firstbtn != null) { UserAnswers.AddAnswer(audiofile.Question.FirstAnswer.IsRight); info.SetValue(user, audiofile.Question.FirstAnswer.IsRight); _dbContext.SaveChanges(); } if (secondbtn != null) { UserAnswers.AddAnswer(audiofile.Question.SecondAnswer.IsRight); info.SetValue(user, audiofile.Question.SecondAnswer.IsRight); _dbContext.SaveChanges(); } if (id < 21) { return(RedirectToAction("Question", new { Id = id + 1 })); } else { return(RedirectToAction("YourResult")); } }
public IActionResult SingQuestion() { int Id = int.Parse(this.RouteData.Values["id"].ToString()); int? userId = HttpContext.Session.GetInt32("UserId"); var user = _dbContext.Users.First(a => a.Id == userId); PropertyInfo info = user.GetType().GetProperty($"Answer{Id}"); var waveResampler = new Resampler(null); Sound freqencyDetector = new Sound(); List <float> result = freqencyDetector.DetectFrequency(waveResampler); float mainFrequency = FrequencyFilter.CalculateMainFreq(result); if (Id == 19) { FrequencyClassificator FreqClass = new FrequencyClassificator(330); UserAnswers.AddAnswer(FreqClass.Validate(mainFrequency)); info.SetValue(user, FreqClass.Validate(mainFrequency)); _dbContext.SaveChanges(); return(RedirectToAction("Question", new { Id = Id + 1 })); } else if (Id == 20) { FrequencyClassificator FreqClass = new FrequencyClassificator(440); UserAnswers.AddAnswer(FreqClass.Validate(mainFrequency)); info.SetValue(user, FreqClass.Validate(mainFrequency)); _dbContext.SaveChanges(); return(RedirectToAction("YourResult")); } else { return(null); } }