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());
 }
示例#2
0
        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;
            }
        }