protected virtual void OnTransactionAdd(TransactionAddState state) { var profile = AutoDonate.EnsureProfile(state.Account); var trans = new DonationTransaction( state.ID, state.Account, state.Email, state.Value, (long)(state.Value / AutoDonate.CMOptions.CurrencyPrice), String.Empty, "{MANUAL ADD}"); AutoDonate.Transactions[trans.ID] = trans; profile.Add(trans); if (trans.Process()) { AutoDonate.SpotCheck(trans.Account); } Refresh(true); DonationProfileUI.DisplayTo(User, profile, trans); }
protected virtual void OnTransactionAdd4(TransactionAddState state) { var ui = new InputDialogGump(User, Refresh()) { Title = "Add Transaction: Step 4", Html = "Manually add a transaction.\n\n" + // "Value:\nEnter the " + AutoDonate.CMOptions.MoneySymbol + " " + AutoDonate.CMOptions.MoneyAbbr + " value for this transaction.\n\n" + // "Click OK to continue or Cancel to exit.", // InputText = state.Value.ToString("F2"), CancelHandler = Refresh }; ui.Callback = (b, val) => OnTransactionAdd4(state, ui); ui.Send(); }
protected virtual void OnTransactionAdd4(TransactionAddState state, InputDialogGump ui) { double value; if (String.IsNullOrWhiteSpace(ui.InputText) || !Double.TryParse(ui.InputText, out value)) { User.SendMessage(0x22, "Value '{0}' is not valid.", ui.InputText); ui.Refresh(); return; } state.Value = value; OnTransactionAdd(state); }
protected virtual void OnTransactionAdd3(TransactionAddState state) { var ui = new InputDialogGump(User, Refresh()) { Title = "Add Transaction: Step 3", Html = "Manually add a transaction.\n\n" + // "Transaction ID:\nEnter the unique ID for this transaction.\n\n" + // "Click OK to continue or Cancel to exit.", // InputText = state.ID, CancelHandler = Refresh }; ui.Callback = (b, id) => OnTransactionAdd3(state, ui); ui.Send(); }
protected virtual void OnTransactionAdd3(TransactionAddState state, InputDialogGump ui) { if (String.IsNullOrWhiteSpace(ui.InputText) || AutoDonate.Transactions.ContainsKey(ui.InputText)) { User.SendMessage(0x22, "Transaction ID '{0}' is not valid.", ui.InputText); ui.Refresh(); return; } state.ID = ui.InputText.Trim(); OnTransactionAdd4(state); }
protected virtual void OnTransactionAdd2(TransactionAddState state, InputDialogGump ui) { if (String.IsNullOrWhiteSpace(ui.InputText) || ui.InputText.Count(c => c == '@') != 1 || ui.InputText.LastIndexOf('.') < ui.InputText.LastIndexOf('@') || ui.InputText.Any(c => c != '.' && c != '@' && c != '-' && c != '_' && !Char.IsLetterOrDigit(c))) { User.SendMessage(0x22, "Email '{0}' is not valid.", ui.InputText); ui.Refresh(); return; } state.Email = ui.InputText.Trim(); OnTransactionAdd3(state); }
protected virtual void OnTransactionAdd2(TransactionAddState state) { var ui = new InputDialogGump(User, Refresh()) { Title = "Add Transaction: Step 2", Html = "Manually add a transaction.\n\n" + // "Email Address:\nEnter the Email Address for this transaction.\n\n" + // "Click OK to continue or Cancel to exit.", // InputText = state.Email, CancelHandler = Refresh }; ui.Callback = (b, email) => OnTransactionAdd2(state, ui); ui.Send(); }
protected virtual void OnTransactionAdd1(TransactionAddState state, InputDialogGump ui) { IAccount acc; if (String.IsNullOrWhiteSpace(ui.InputText) || (acc = Accounts.GetAccount(ui.InputText)) == null) { User.SendMessage(0x22, "Account '{0}' could not be found.", ui.InputText); ui.Refresh(); return; } state.Account = acc; state.Email = acc.Email; OnTransactionAdd2(state); }
protected virtual void OnTransactionAdd1(TransactionAddState state) { var ui = new InputDialogGump(User, Refresh()) { Title = "Add Transaction: Step 1", Html = "Manually add a transaction.\n\n" + // "Account Name:\nEnter the account name of the recipient for this transaction.\n\n" + // "Click OK to continue or Cancel to exit.", // InputText = User.Account.Username, CancelHandler = Refresh }; ui.Callback = (b, username) => OnTransactionAdd1(state, ui); ui.Send(); }
protected virtual void OnTransactionAdd() { var state = new TransactionAddState { Account = User.Account, Email = User.Account.Email, ID = String.Empty, Value = 0.0 }; OnTransactionAdd1(state); }