public OutcomeTextViewModel(OutcomeTextOutput message) { Total = new TotalGroupViewModel(message.Total); Share = new ShareGroupViewModel(message.Share); Debtors = new DebtorsGroupViewModel(message.Debtors); if (message.Collected != null) { Collected = new CollectedGroupViewModel(message.Collected); } if (message.Expenses != null) { Expenses = new ExpensesGroupViewModel(message.Expenses); } if (message.LeftOver != null) { LeftOver = new LeftOverTextViewModel(message.LeftOver); } if (message.Evens != null) { Evens = new EvensGroupViewModel(message.Evens); } UseWholeNumbers = message.UseWholeNumbers; }
public bool Read(OutcomeTextOutput message) { OutcomeTextViewModel text = new OutcomeTextViewModel(message); ShowOutcomeText(text); return(true); }
private void QueueOutcomeAsText() { OutcomeTextOutput text = new OutcomeTextOutput(); //Total text.Total = new TotalGroupOutput() { Total = _outcome.Total, TotalGuests = _outcome.TotalGuests, Expenses = _outcome.Expenses.Select(x => new NameAmountOutput() { Name = x.Name, Value1 = x.Amount, }).ToList() }; var list = _outcome.Debtors.Where(x => x.Debt < _outcome.Share); //Share text.Share = new ShareGroupOutput() { GuestsCount = _outcome.GuestsCount, Share = _outcome.Share, RealShare = _outcome.RealShare, HasNoDebtors = (_outcome.GuestsCount - _outcome.Debtors.Count()) > 0, HasPartialDebtors = _outcome.Debtors.Any(x => x.Debt < _outcome.Share), }; //Debtors text.Debtors = new DebtorsGroupOutput() { Share = _outcome.Share, FullDebtors = _outcome.Debtors.Where(x => x.DebtorStatus == GuestDebtorStatus.Full).Select(x => x.Name).ToList(), PartialDebtors = _outcome.Debtors.Where(x => x.DebtorStatus == GuestDebtorStatus.Partial).Select(x => new NameAmountOutput(x.Name, x.Debt, x.Amount)).ToList(), }; //Collected if (_outcome.Creditors.Any()) { text.Collected = new CollectedGroupOutput() { HasExpenses = _outcome.Expenses.Any(), Debtors = _outcome.Debtors.Select(x => x.Name).ToList(), TotalCollected = _outcome.Debtors.Sum(x => x.Debt), Creditors = _outcome.Creditors.Select(x => new NameAmountOutput(x.Name, x.Debt)).ToList(), }; } //Expenses if (_outcome.Expenses.Any()) { text.Expenses = new ExpensesGroupOutput() { HasCreditors = _outcome.Creditors.Any(), Remaining = _outcome.Total - _outcome.TotalGuests + _outcome.LeftOver, Debtors = _outcome.Debtors.Select(x => x.Name).ToList(), Expenses = _outcome.Expenses.Select(x => new NameAmountOutput(x.Name, x.Amount)).ToList(), }; } //Expenses if (_outcome.LeftOver != 0) { text.LeftOver = new LeftOverGroupOutput() { LeftOver = _outcome.LeftOver, }; } //Evens if (_outcome.Evens.Any()) { text.Evens = new EvensGroupOutput() { Evens = _outcome.Evens.Select(x => x.Name).ToList(), }; } text.UseWholeNumbers = RoomSettings.UseWholeNumbers; Queue(text); }