//Methods for this controller //************************************************************ //Returns a view with ChoreDoerModel if all checks pass private ActionResult ViewDoerById(int?id) { //Check for Id if (id == null) { NullIdEncountered(); } using (var context = new RotatingChoresContext()) { var doer = GetDoerById(id, context); //Check for Doer in the database if (doer != null) { //Check that ChoreDoer is part of user's group if (IsGroupObject(doer.GroupId)) { var userGroup = GetUserGroup(context); var doerModel = ChoreDoerModel.ConvertFromDoer(doer); doerModel.AddChoresList(doer, userGroup); return(View(doerModel)); } return(InvalidGroup()); } return(DoerNotFound()); } }
public ActionResult Index() { if (User.Identity.IsAuthenticated) { var id = User.Identity.GetUserId(); using (var context = new RotatingChoresContext()) using (var userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>()) { string email = userManager.GetEmail(id); var choreDoer = context.ChoreDoers.FirstOrDefault(c => c.Email == email); if (choreDoer == null) { var model = new ChoreDoerModel(); model.Email = email; TempData["Message"] = "You have not set up your Chore Doer Profile. Select Max Difficulty 'None' to be excluded from chores."; return(RedirectToAction("Add", "Doer", model)); } else { ViewBag.Message = "Looks like you're in the system!"; } } return(View()); } ViewBag.Message = "Sign In to start keeping track of chores!"; return(View()); }
private void ValidateChores(ChoreDoerModel model) { var pass = true; foreach (var chore in model.Chores) { if (chore.Difficulty > model.MaxDifficulty) { pass = false; } } if (!pass) { ModelState.AddModelError("MaxDifficulty", "This user has chores assigned above this difficulty. Reassign chores or raise Max Difficulty"); } }
private void SetGroupMemberSelectList(RotatingChoresContext context) { var returnList = new List <ChoreDoerModel>(); Group userGroup = GetUserGroup(context); if (userGroup.Members.Count() > 0) { foreach (var member in userGroup.Members) { returnList.Add(ChoreDoerModel.ConvertFromDoer(member)); } } var selectList = new SelectList(returnList, "ChoreDoerId", "Name"); ViewBag.GroupMembers = selectList; }
// GET: Doer public ActionResult Index() { using (var context = new RotatingChoresContext()) { var group = GetUserGroup(context); var modelList = new List <ChoreDoerModel>(); if (group.Members.Count > 0) { foreach (var doer in group.Members) { var doerModel = ChoreDoerModel.ConvertFromDoer(doer); doerModel.AddChoresList(doer, group); modelList.Add(doerModel); } return(View(modelList)); } TempData["Message"] = "No group members. Add one now!"; return(RedirectToAction("Add")); } }
public ActionResult Add(ChoreDoerModel model) { using (var context = new RotatingChoresContext()) { var newDoer = context.ChoreDoers.Create(); newDoer.GroupId = User.Identity.GetGroupId(); model.UpdateDoer(newDoer); try { context.ChoreDoers.Add(newDoer); context.SaveChanges(); TempData["Message"] = "New group member added!"; } catch (Exception e) { TempData["FailureMessage"] = e.Message; return(View(model)); } } return(RedirectToAction("Index")); }
public ActionResult Edit(ChoreDoerModel doerModel) { using (var context = new RotatingChoresContext()) { var doer = doerModel.GetRepresentedDoer(context); if (doer != null) { var group = GetUserGroup(context); doerModel.AddChoresList(doer, group); ValidateChores(doerModel); if (ModelState.IsValid && IsGroupObject(doer.GroupId)) { doerModel.UpdateDoer(doer); context.SaveChanges(); TempData["Message"] = "Chore doer profile has been updated!"; return(RedirectToAction("Index")); } return(View(doerModel)); } return(DoerNotFound()); } }