public async Task <ActionResult> Finish(CompletedModelView model) { if (!string.IsNullOrEmpty(model.Email)) { var createUserEmailBinding = new { CreatedUtc = DateTime.UtcNow, Email = model.Email, PrizeSent = false }; var postUserEmailRequest = new HttpRequestMessage(HttpMethod.Post, "/api/users/email") { Content = new StringContent(JsonSerializer.Serialize(createUserEmailBinding), Encoding.UTF8, "application/json") }; var postGuessResponse = await _db.BuildApiResponse <UserEmailsModel>(postUserEmailRequest, _session._accessToken); if (postGuessResponse.Status == HttpStatusCode.OK) { return(RedirectToAction("Start", "Home")); } } return(RedirectToAction("Start", "Home")); }
/// <summary> /// GETs following data to display back to user /// number of images /// guess minus actual answer /// average time (Time/images) /// </summary> /// <param name="userGuid"></param> /// <returns></returns> public async Task <ActionResult> Finish(string userGuid) { if (_session._isLoggedin) { var getUserRequest = new HttpRequestMessage(HttpMethod.Get, $"/api/user/hash/{userGuid}"); var getUserResponse = await _db.BuildApiResponse <UserModel>(getUserRequest, _session._accessToken); if (getUserResponse.Status == HttpStatusCode.OK) { var getUserGuessRequest = new HttpRequestMessage(HttpMethod.Get, $"/api/usersGuess/{getUserResponse.Content.UserId}"); var getUserGuessResponse = await _db.BuildApiResponse <List <UserGuessModel> >(getUserGuessRequest, _session._accessToken); if (getUserResponse.Status == HttpStatusCode.OK) { var imageNumberArrayP1 = new List <int>(); var imageNumberArrayP2 = new List <int>(); var imageNumberArrayP3 = new List <int>(); var guessResultsArrayP1 = new List <decimal>(); var guessResultsArrayP2 = new List <decimal>(); var guessResultsArrayP3 = new List <decimal>(); var time = getUserResponse.Content.TimePhase2.HasValue ? getUserResponse.Content.TimePhase2.Value : DateTime.Now.Date; //convert time into seconds var seconds = time.Second; seconds += (time.Minute * 60); seconds += (time.Hour * 3600); //Get GuessPercentage - Actual Answer for table int i = 1; var guesses = getUserGuessResponse.Content.OrderBy(x => x.UsersGuessId); var guessesP1 = guesses.Where(x => x.Phase == Phase.ONE); var guessesP2 = guesses.Where(x => x.Phase == Phase.TWO); var guessesP3 = guesses.Where(x => x.Phase == Phase.THREE); foreach (var item in guessesP1) { var result = (item.GuessPercentage - item.Image.DecayRate) * 100; guessResultsArrayP1.Add(result); imageNumberArrayP1.Add(i); i++; } foreach (var item in guessesP2) { var result = (item.GuessPercentage - item.Image.DecayRate) * 100; guessResultsArrayP2.Add(result); imageNumberArrayP2.Add(i); i++; } foreach (var item in guessesP3) { var result = (item.GuessPercentage - item.Image.DecayRate) * 100; guessResultsArrayP3.Add(result); imageNumberArrayP3.Add(i); i++; } ////Total Time //TimeSpan t = TimeSpan.FromSeconds(seconds); //string totalTime = string.Format("{0:D2}:{1:D2}:{2:D2}s", // t.Hours, // t.Minutes, // t.Seconds); ////Average Time //TimeSpan t2 = TimeSpan.FromSeconds((seconds / imageNumberArrayP2.Count)); //string averageTime = string.Format("{0:D2}:{1:D2}:{2:D2}s", // t2.Hours, // t2.Minutes, // t2.Seconds); var model = new CompletedModelView() { GuessResultPhase1 = guessResultsArrayP1.ToArray(), GuessResultPhase2 = guessResultsArrayP2.ToArray(), GuessResultPhase3 = guessResultsArrayP3.ToArray(), NumberOfImagesPhase1 = imageNumberArrayP1.ToArray(), NumberOfImagesPhase2 = imageNumberArrayP2.ToArray(), NumberOfImagesPhase3 = imageNumberArrayP3.ToArray(), //TotalTimePhase2 = totalTime, //AverageTimePhase2 = averageTime }; return(View(model)); } } return(RedirectToAction("Errorpage", "Home")); } return(RedirectToAction("Login", "Account")); }