public Transaction CreateTransaction(CMSDataContext Db, decimal?amount = null) { if (!amount.HasValue) { amount = AmtToPay; } decimal?amtdue = null; if (Amtdue > 0) { amtdue = Amtdue - (amount ?? 0); } // var ss = m.ProcessType; var ti = new Transaction { First = First, MiddleInitial = MiddleInitial.Truncate(1) ?? "", Last = Last, Suffix = Suffix, Donate = Donate, Regfees = AmtToPay, Amt = amount, Amtdue = Math.Max((amtdue ?? 0), 0), Emails = Email, Testing = testing, Description = Description, OrgId = OrgId, Url = URL, TransactionGateway = OnlineRegModel.GetTransactionGateway(ProcessType)?.GatewayAccountName, Address = Address.Truncate(50), Address2 = Address2.Truncate(50), City = City, State = State, Country = Country, Zip = Zip, DatumId = DatumId, Phone = Phone.Truncate(20), OriginalId = OriginalId, Financeonly = FinanceOnly, TransactionDate = Util.Now, PaymentType = Type, LastFourCC = Type == PaymentType.CreditCard ? CreditCard.Last(4) : null, LastFourACH = Type == PaymentType.Ach ? Account.Last(4) : null }; CurrentDatabase.Transactions.InsertOnSubmit(ti); CurrentDatabase.SubmitChanges(); if (OriginalId == null) // first transaction { ti.OriginalId = ti.Id; } return(ti); }