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); }
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(); }
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); }