public RedirectToRouteResult PurchaseSingleItem(int id) { SimulationManager mgr = new SimulationManager(); var item = db.StoreItems.Find(id); var userProfile = db.UserProfiles.Local.SingleOrDefault(u => u.UserName == User.Identity.Name) ?? db.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name); var student = db.Students.Find(userProfile.UserId); var accounts = db.Accounts.Where(x => x.StudentID == student.UserId); var account = accounts.FirstOrDefault(); var accountSavings = accounts.Single(x => x.AccountName == "Savings"); var purchase = mgr.PurchaseSingleItem(item, student, account, accountSavings); db.Purchases.Add(purchase); db.SaveChanges(); return RedirectToAction("Index", "Student"); }
public RedirectToRouteResult PurchaseMultipleItems(List<int> MultipleItemsCheckboxes) { SimulationManager mgr = new SimulationManager(); ICollection<StoreItem> items = new List<StoreItem>(); //Don't know if this will work var userProfile = db.UserProfiles.Local.SingleOrDefault(u => u.UserName == User.Identity.Name) ?? db.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name); var student = db.Students.Find(userProfile.UserId); var studentExpenses = student.StudentExpenses; //Not sure if this is right? var accounts = db.Accounts.Where(x => x.StudentID == student.UserId); var account = accounts.FirstOrDefault(); var accountSavings = accounts.Single(x => x.AccountName == "Savings"); if (MultipleItemsCheckboxes != null) { foreach (var item in MultipleItemsCheckboxes) { var storeItem = db.StoreItems.Find(item); items.Add(storeItem); } //var purchases = mgr.PurchaseMultipleItems(items, student, account, accountSavings, studentExpenses); //foreach (var item in purchases) //{ // db.Purchases.Add(item); //} db.SaveChanges(); return RedirectToAction("Index", "Student"); } else return RedirectToAction("Index"); //Set up error }