示例#1
0
    public static ItemExchange Create(RechargeModel model, Transform parent)
    {
        GameObject go = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/HeaderMenu/Recharge/Item Exchange"));

        go.transform.parent        = parent;
        go.transform.localPosition = Vector3.zero;
        go.transform.localScale    = Vector3.one;
        ItemExchange item = go.GetComponent <ItemExchange>();

        item.SetData(model);
        return(item);
    }
示例#2
0
    public void ShowExchange()
    {
        List <RechargeModel> listType = new List <RechargeModel>();

        foreach (RechargeModel model in GameManager.Instance.ListRechargeModel)
        {
            if (listType.Count == 0)
            {
                listType.Add(model);
            }
            else
            {
                if (listType.Find(m => m.Type == model.Type) == null)
                {
                    listType.Add(model);
                }
            }
        }


        ExchangeTitle.Create("sms", exchangeGrid.transform).transform.name = "1";
        List <RechargeModel> smsRecharge = GameManager.Instance.ListRechargeModel.FindAll(m => m.Type == "sms");

        for (int j = 0; j < smsRecharge.Count; j++)
        {
            ItemExchange.Create(smsRecharge[j], exchangeGrid.transform).transform.name = "1." + j;
        }

        ExchangeTitle.Create("mobile_card", exchangeGrid.transform).transform.name = "2";
        List <List <RechargeModel> > lstGroup = GroupCardCodeValue();

        for (int j = 0; j < lstGroup.Count; j++)
        {
            ItemExchange.Create(lstGroup[j][0], exchangeGrid.transform).transform.name = "2." + j;
        }


        exchangeGrid.repositionNow = true;
        exchangeGrid.transform.parent.GetComponent <UIScrollView> ().ResetPosition();
    }
示例#3
0
        public async Task <IResponse> ExchangeItem([FromBody] ItemExchangeViewModel itemExchangeViewModel)
        {
            ItemExchangeResponse itemExchangeResponse = new ItemExchangeResponse();
            List <string>        errors = new List <string>();

            Item item = await _context.Items.Include(x => x.Category).Include(x => x.OwnerAccount).FirstOrDefaultAsync(x => x.Id == itemExchangeViewModel.ItemId);

            if (item != null)
            {
                Account newOwnerAccount =
                    await _userManager.FindByIdAsync(itemExchangeViewModel.NewOwnerAccountId);

                if (newOwnerAccount != null)
                {
                    PointsModel points = await _context.Points.SingleOrDefaultAsync(x => x.Account == newOwnerAccount);

                    if (points.Value >= itemExchangeViewModel.PointValue)
                    {
                        await _pointManager.RemoveFromUserAsync(newOwnerAccount, itemExchangeViewModel.PointValue);

                        Account oldOwnerAccount = item.OwnerAccount;
                        item.OwnerAccount = newOwnerAccount;

                        _context.Items.Update(item);
                        await _context.SaveChangesAsync();

                        ItemExchangeModel itemExchangeModel = new ItemExchangeModel
                        {
                            Item            = item,
                            OldOwnerAccount = oldOwnerAccount,
                            NewOwnerAccount = item.OwnerAccount,
                            PointValue      = itemExchangeViewModel.PointValue
                        };

                        ItemExchange itemExchange = new ItemExchange(_context);
                        itemExchange.Set(itemExchangeModel);
                        itemExchangeResponse = await itemExchange.CommitAsync();

                        errors.Add("Item checked out successfully");
                    }
                    else
                    {
                        errors.Add($"Not enough points for user :{newOwnerAccount.UserName}");
                    }
                }
                else
                {
                    errors.Add("User not found.");
                }
            }
            else
            {
                errors.Add("Item not found.");
            }
            if (errors.Count > 0)
            {
                itemExchangeResponse.Errors = errors;
            }
            else
            {
                itemExchangeResponse.Errors = null;
            }


            return(itemExchangeResponse);
        }