//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");
            }
        }
示例#4
0
        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());
     }
 }