Ejemplo n.º 1
0
        public async Task ProcessDisarmedTrap(string userId, string disarmedTrapId)
        {
            UserResult user = await AppBusiness.User.GetById(userId);

            ArmedTrapResult disarmedTrap = await AppRepository.Trap.GetArmedTrapById(disarmedTrapId);

            UserResult userInjured   = user;
            UserResult userOwnerTrap = await AppBusiness.User.GetById(disarmedTrap.UserId);

            if (userOwnerTrap != null)
            {
                TrapResult trap = await AppBusiness.Trap.GetByNameKey(disarmedTrap.NameKey);

                UserRequest userOwnerRequest   = Mapper.Map <UserRequest>(userOwnerTrap);
                UserRequest userInjuredRequest = Mapper.Map <UserRequest>(userInjured);

                await AppBusiness.User.AddPoints(userOwnerRequest, trap.Points);

                /* Deixar de forma dinamica futuramente */
                var trapOwned = await AppBusiness.Trap.GetByNameKey("BEAR_TRAP");

                var trapUserOwned = new UserTrapRequest();

                trapUserOwned.TrapId = trapOwned.Id.ToString();
                trapUserOwned.Amount = 5;

                AppBusiness.User.AddTrap(userOwnerRequest, trapUserOwned);

                await AppBusiness.User.Save(userOwnerRequest);

                await SendNotificationToUserInjured(userInjuredRequest, userOwnerRequest, disarmedTrap);

                await SendNotificationToUserOwnerTrap(userInjuredRequest, userOwnerRequest, disarmedTrap, trap.Points);
            }
        }
        private async Task AddInitialTraps(UserRequest user)
        {
            UserTrapRequest userTrap = new UserTrapRequest();

            userTrap.TrapId = await AppBusiness.Parameter.GetValue(EParameter.ID_TRAP_NEW_REGISTER);

            userTrap.Amount = Convert.ToInt32(await AppBusiness.Parameter.GetValue(EParameter.AMOUNT_TRAP_NEW_REGISTER));

            AddTrap(user, userTrap);
        }
Ejemplo n.º 3
0
        private UserTrap Parse(UserTrapRequest userTrap)
        {
            if (userTrap != null)
            {
                UserTrap response = new UserTrap();

                response.Trap   = AppRepository.EntitiesContext.Traps.Find(new Guid(userTrap.TrapId));
                response.Amount = userTrap.Amount;

                return(response);
            }
            else
            {
                return(null);
            }
        }
        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);
        }
        public void AddTrap(UserRequest user, UserTrapRequest userTrap)
        {
            bool hasTrap = false;

            if (user.Traps == null)
            {
                user.Traps = new List <UserTrapRequest>();
            }

            foreach (UserTrapRequest trapUserActual in user.Traps)
            {
                if (trapUserActual.TrapId == userTrap.TrapId)
                {
                    trapUserActual.Amount += userTrap.Amount;

                    hasTrap = true;
                }
            }

            if (!hasTrap)
            {
                user.Traps.Add(userTrap);
            }
        }