public async Task <UserResult> ConfirmBuyIntent(BuyIntentRequest request) { UserResult response = null; BuyIntentResult actualIntent = await AppRepository.Purchase.GetById(request.Id); if (actualIntent != null) { request = Mapper.Map <BuyIntentRequest>(actualIntent); await AppRepository.Purchase.ConfirmBuyIntent(request); response = await AppBusiness.User.GetById(actualIntent.UserId); if (response != null) { AvailableTrapResult availableTrap = await AppBusiness.Purchase.GetAvailableTrapById(actualIntent.AvailableTrapId); if (availableTrap != null) { TrapResult trap = await AppBusiness.Trap.GetByNameKey(availableTrap.NameKey); UserTrapRequest userTrap = new UserTrapRequest(); userTrap.TrapId = trap.Id.ToString(); userTrap.Amount = availableTrap.Amount; UserRequest userRequest = Mapper.Map <UserRequest>(response); AppBusiness.User.AddTrap(userRequest, userTrap); await AppRepository.User.UpdateTraps(userRequest.Id, userRequest.Traps); response = await AppBusiness.User.GetById(userRequest.Id); } } } return(response); }
private AvailableTrapResult Parse(AvailableTrap availableTrap) { if (availableTrap != null) { AvailableTrapResult response = new AvailableTrapResult(); response.Active = availableTrap.Active; response.Id = availableTrap.Id.ToString(); response.KeyApple = availableTrap.KeyApple; response.KeyGoogle = availableTrap.KeyGoogle; response.KeyWindows = availableTrap.KeyWindows; response.NameKey = availableTrap.NameKey; response.Amount = availableTrap.Amount; response.Value = availableTrap.Value; return(response); } else { return(null); } }