public static bool ChargePayment(string userId, string paymentNonce, int year) { using (var db = new WorktripEntities()) { var user = db.Users.FirstOrDefault(u => u.Id == userId); var link = db.UserToPreparers.FirstOrDefault(up => up.Year == year && up.UserId == userId); if (user == null || link == null || !link.Fee.HasValue) { return(false); } var request = new TransactionRequest { Amount = link.Fee.Value * 1.07M, PaymentMethodNonce = paymentNonce, Customer = new CustomerRequest { FirstName = user.FirstName, LastName = user.LastName }, BillingAddress = new AddressRequest { FirstName = user.FirstName, LastName = user.LastName }, Options = new TransactionOptionsRequest { SubmitForSettlement = true } }; Result <Transaction> result = gateway.Transaction.Sale(request); if (result.IsSuccess()) { link.StatusId = db.Status.First(s => s.Name == "Finished").Id; db.SaveChanges(); UserInfoViewModel.UpdateUserActionsLog(userId, "submitted payment"); } return(result.IsSuccess()); } }
public bool SaveTaxInfo(string userId) { using (var db = new WorktripEntities()) { var userInfo = db.Users.FirstOrDefault(u => u.Id == userId); if (userInfo == null) { return(false); } if (this.TaxInfos != null) { foreach (var kvPair in this.TaxInfos) { var taxInfo = UserInfoViewModel.GetOrCreateUserInfo(db, userId, kvPair.Value.Year); var u = kvPair.Value; taxInfo.CellphoneBill = u.CellphoneBill; taxInfo.ClothingFees = u.ClothingFees; taxInfo.DaysInTrainingOrAway = u.DaysInTrainingOrAway; taxInfo.DriverLayoverTips = u.DriverLayoverTips; taxInfo.FlightGearLuggageFees = u.FlightGearLuggageFees; taxInfo.IdentityFees = u.IdentityFees; taxInfo.InternetBill = u.InternetBill; taxInfo.LaundryFees = u.LaundryFees; taxInfo.TechPurchasesFees = u.TechPurchasesFees; taxInfo.TotalSpentLayoverTransportation = u.TotalSpentLayoverTransportation; taxInfo.TransactionalFees = u.TransactionalFees; taxInfo.UnreimbursedExpenses = u.UnreimbursedExpenses; taxInfo.DLState = u.DLState; taxInfo.InternationalLayovers = u.InternationalLayovers; } } db.SaveChanges(); UpdateUserActionsLog(userId, "answered " + this.TaxInfos.First().Value.Year + " tax questions"); } return(true); }
public bool SavePersonalInfo(string userId) { using (var db = new WorktripEntities()) { var userInfo = db.Users.FirstOrDefault(u => u.Id == userId); if (userInfo == null) { return(false); } userInfo.FirstName = this.FirstName; userInfo.MiddleName = this.MiddleName; userInfo.LastName = this.LastName; userInfo.Email = this.Email; userInfo.PhoneNumber = this.PhoneNumber; userInfo.DOB = String.IsNullOrEmpty(this.DOB) ? (DateTime?)null : DateTime.Parse(this.DOB); userInfo.Address = this.Address; userInfo.City = this.City; userInfo.State = this.State; userInfo.Zip = this.Zip; userInfo.BankName = this.BankName; userInfo.BankAccountNumber = this.BankAccountNumber; userInfo.RoutingNumber = this.RoutingNumber; if (this.TaxInfos != null) { foreach (var kvPair in this.TaxInfos) { var taxInfo = UserInfoViewModel.GetOrCreateUserInfo(db, userId, kvPair.Value.Year); taxInfo.BaseAirportCode = kvPair.Value.BaseAirportCode?.ToUpper(); taxInfo.Airline = kvPair.Value?.Airline; } } db.SaveChanges(); UpdateUserActionsLog(userId, "updated personal info"); } return(true); }
public bool SaveYesNoQuestions(string userId) { using (var db = new WorktripEntities()) { var userInfo = db.Users.FirstOrDefault(u => u.Id == userId); if (userInfo == null) { return(false); } if (this.TaxInfos != null) { foreach (var kvPair in this.TaxInfos) { var taxInfo = UserInfoViewModel.GetOrCreateUserInfo(db, userId, kvPair.Value.Year); var u = kvPair.Value; taxInfo.Married = u.Married; taxInfo.Dependent = u.Dependent; taxInfo.StudentLoans = u.StudentLoans; taxInfo.Stocks = u.Stocks; taxInfo.House = u.House; taxInfo.HSA = u.HSA; taxInfo.C1098T = u.C1098T; taxInfo.C1099R = u.C1099R; } } db.SaveChanges(); UpdateUserActionsLog(userId, "updated yes/no questions"); } return(true); }