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);
        }
示例#2
0
        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);
        }