private ApplicationUser GetUserForCalculationHistory(SumResource sumResource) { ApplicationUser applicationUser = null; if (!string.IsNullOrEmpty(sumResource.UserName)) { var users = unitOfWork.UserRepository.Find(x => x.UserName == sumResource.UserName); if (users.Any()) { applicationUser = users.First(); } else { applicationUser = new ApplicationUser { UserName = sumResource.UserName }; } } else { applicationUser = unitOfWork.UserRepository.GetLastCreatedUser(); } return(applicationUser); }
public async Task <IActionResult> Sum([FromBody] SumResource sumResource) { try { string result = calculationHistoryService.GetSum(sumResource.FirstNumber, sumResource.SecondNumber); await calculationHistoryService.SaveAsync(sumResource, result); return(Ok(result)); } catch (Exception exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public async Task <int> SaveAsync(SumResource sumResource, string result) { ApplicationUser applicationUser = GetUserForCalculationHistory(sumResource); var calculationHistory = new CalculationHistory { ApplicationUser = applicationUser, CalculationDate = DateTime.UtcNow, FirstNumber = sumResource.FirstNumber, SecondNumber = sumResource.SecondNumber, Result = result }; unitOfWork.CalculationHistoryRepository.Add(calculationHistory); var completeResult = await unitOfWork.CompleteAsync(); return(completeResult); }