コード例 #1
0
 public async Task AddCoffeeFortuneTellingAsync(CoffeeFortuneTelling coffeeFortuneTelling)
 {
     await _context.CoffeeFortuneTellings.AddAsync(coffeeFortuneTelling);
 }
コード例 #2
0
 public void UpdateCoffeeFortuneTelling(CoffeeFortuneTelling coffeeFortuneTelling)
 {
     _context.CoffeeFortuneTellings.Update(coffeeFortuneTelling);
 }
コード例 #3
0
        public async Task <CreateCoffeeFortuneTellingResponse> CreateCoffeeFortuneTellingAsync(CoffeeFortuneTelling coffeeFortuneTelling, List <string> picturePaths)
        {
            if (coffeeFortuneTelling.FortuneTeller.Status == UserStatus.Deactive)
            {
                throw new BusinessException("FortuneTellerIsNotActive", "Falcı aktif değildir.");
            }

            coffeeFortuneTelling.SubmitDateUtc = DateTime.UtcNow;

            if (coffeeFortuneTelling.User.Point < coffeeFortuneTelling.FortuneTeller.CoffeePointPrice)
            {
                throw new BusinessException("UserDoesntHaveEnoughPoint", "Yeteri kadar puan bulunmamaktadır. Puan satın alınız.");
            }

            coffeeFortuneTelling.Status = CoffeeFortuneTellingStatus.SubmittedByUser;

            await _coffeeFortuneTellingRepository.AddCoffeeFortuneTellingAsync(coffeeFortuneTelling);

            foreach (var item in picturePaths)
            {
                await _coffeeFortuneTellingRepository.AddCoffeeFortuneTellingPictureAsync(new CoffeeFortuneTellingPicture
                {
                    CoffeeFortuneTelling = coffeeFortuneTelling,
                    Path = item
                });
            }
            coffeeFortuneTelling.User.Point = coffeeFortuneTelling.User.Point - coffeeFortuneTelling.FortuneTeller.CoffeePointPrice;
            var result = await _userManager.UpdateAsync(coffeeFortuneTelling.User);

            if (!result.Succeeded)
            {
                var errors = "";
                foreach (var item in result.Errors)
                {
                    errors = errors + item.Code + " - " + item.Description + ",";
                }

                _logger.LogError("PointDecreaseError: UserName: "******", Errors: " + errors);

                throw new BusinessException("CanNotConfirm", "Onaylanamadı.");
            }
            await _unitOfWork.CompleteAsync();

            SendNewFalMailToFalci(coffeeFortuneTelling.FortuneTeller);

            return(new CreateCoffeeFortuneTellingResponse(coffeeFortuneTelling));
        }