public TradeViewViewModel(bool forUser, TradeListItem tradeListItem) { ForUser = forUser; TradeListItem = tradeListItem; AcceptCommand = new Command(async() => await acceptAsync()); ApproveCommand = new Command(async() => await approveAsync()); DeclineCommand = new Command(async() => await declineAsync()); DenyCommand = new Command(async() => await denyAsync()); }
private async System.Threading.Tasks.Task ExecuteLoadTradesCommand() { if (IsBusy) { return; } IsRefreshing = false; IsBusy = true; var usr = AuthService.UserToken.User; try { Trades.Clear(); var items = await DataService.GetItemsAsync <ScheduleTrade>("scheduleTrades" + (ForUser ? "?forUser=true" : "?status=" + ((int)Constants.TRADE_STATUS.PENDING_APPROVAL).ToString())); NoTrades = !items.Data.Any(); OnPropertyChanged("NoTrades"); foreach (var item in items.Data.OrderByDescending(d => d.Schedule.ScheduleDateValue)) { var tradeListItem = new TradeListItem(); tradeListItem.ScheduleTrade = item; tradeListItem.Schedule = GetItemForSchedule(item.Schedule); if (item.TradeForScheduleId != null) { tradeListItem.ToSchedule = GetItemForSchedule(item.TradeForSchedule); } tradeListItem.InfoColumn = new DisplayItem(); tradeListItem.InfoColumn.Tag = false; tradeListItem.AcceptApproveText = ""; tradeListItem.DeclineDenyText = ""; if (ForUser && item.TradeStatus == (int)Constants.TRADE_STATUS.REQUESTED && item.Schedule.UserIdValue == usr.UserIdValue) { tradeListItem.InfoColumn.Tag = true; tradeListItem.AcceptApproveText = AcceptText; tradeListItem.DeclineDenyText = DeclineText; } else if (!ForUser && item.TradeStatus == (int)Constants.TRADE_STATUS.PENDING_APPROVAL) { tradeListItem.InfoColumn.Tag = true; tradeListItem.AcceptApproveText = ApproveText; tradeListItem.DeclineDenyText = DenyText; } tradeListItem.InfoColumn.Line1 = item.TradeUser == null ? "" : item.TradeUser.DisplayName + " - "; switch (item.TradeStatusValue) { case (int)Constants.TRADE_STATUS.SUBMITTED: tradeListItem.Color = Color.LightGray; tradeListItem.InfoColumn.Line1 += "Posted"; break; case (int)Constants.TRADE_STATUS.REQUESTED: tradeListItem.Color = Color.Yellow; tradeListItem.InfoColumn.Line1 += "Requested"; break; case (int)Constants.TRADE_STATUS.PENDING_APPROVAL: tradeListItem.Color = Color.Green; tradeListItem.InfoColumn.Line1 += "Pending Approval"; break; case (int)Constants.TRADE_STATUS.APPROVED: tradeListItem.Color = Color.Blue; tradeListItem.InfoColumn.Line1 += "Approved"; break; case (int)Constants.TRADE_STATUS.DENIED: tradeListItem.Color = Color.Red; tradeListItem.InfoColumn.Line1 += "Denied"; break; default: tradeListItem.Color = Color.Black; break; } Trades.Add(tradeListItem); } } catch (Exception ex) { IsBusy = false; ExceptionHelper.ShowException(ex); } finally { IsBusy = false; } }