示例#1
0
        public ActionResult Create(int collectionId)
        {
            var viewModel = new ExpenseViewModel
                {
                    Expense = new Expense() { TripId = collectionId, RecordDate = DateTime.Now, Receivers = new List<Person>() }
                };

            this.CompleteViewModel(viewModel);

            return View(viewModel);
        }
示例#2
0
        public ActionResult Create(int collectionId, Expense expense, FormCollection formCollection)
        {
            //throw new NotImplementedException();

            /*ar people = db.People.ToList();
            ViewBag.People = people;

            var selectedUsedBy = formCollection["usedBy"].Split(',').Select(x => int.Parse(x)).ToList();
            ViewBag.UsedByCheckList = people.ToDictionary(p => p, p => selectedUsedBy.Contains(p.PersonId));

            if (ModelState.IsValid)
            {
                ((Dictionary<int, bool>)ViewBag.UsedByCheckList).Where(x => x.Value)
                        .Select(x => db.People.Find(x.Key)).ToList().ForEach(x => expense.Receivers.Add(x));

                db.Expenses.Add(expense);
                db.SaveChanges();

                return RedirectToAction("Index", new { expense.CollectionId });
            }*/

            expense.Receivers = new List<Person>(
                ParseCheckBoxes(
                    formCollection["PossibleUsers.kvp.Item1.PersonId"],
                    formCollection["PossibleUsers.kvp.Item2"]).Where(t => t.Item2).Select(t => db.People.Find(t.Item1)));
            expense.TripId = collectionId;

            if (ModelState.IsValid)
            {
                db.Expenses.Add(expense);
                db.SaveChanges();

                return RedirectToAction("Index", new { CollectionId = expense.TripId });
            }

            var viewModel = new ExpenseViewModel { Expense = expense };

            this.CompleteViewModel(viewModel);

            return View(viewModel);
        }
示例#3
0
 //
 // GET: /Expense/Create
 private void CompleteViewModel(ExpenseViewModel viewModel)
 {
     viewModel.PossiblePayers = db.People.ToList();
     viewModel.PossibleUsers = db.People.ToList().Select(p => Tuple.Create(p, viewModel.Expense == null || viewModel.Expense.Receivers == null ? false : viewModel.Expense.Receivers.Any(u => u == p))).ToList();
 }