public ActionResult AddWorker(int id, WorkgroupWorker workgroupWorker) { var workgroup = _workgroupRepository.GetNullableById(id); if (workgroup == null) return this.RedirectToAction(a => a.Index()); workgroupWorker.Workgroup = workgroup; ModelState.Clear(); workgroupWorker.TransferValidationMessagesTo(ModelState); // check to make sure user isn't already part of workgroup if (_workgroupWorkerRepository.Queryable.Where(a => a.Workgroup == workgroup && a.Worker == workgroupWorker.Worker).Any()) { ModelState.AddModelError("", "Worker is already part of workgroup."); } if (ModelState.IsValid) { _workgroupWorkerRepository.EnsurePersistent(workgroupWorker); Message = "Worker has been added to workgroup."; return this.RedirectToAction(a => a.Details(id)); } var viewModel = WorkgroupWorkerViewModel.Create(Repository, workgroup, CurrentUser.Identity.Name); viewModel.WorkgroupWorker = workgroupWorker; return View(viewModel); }
public ActionResult RemoveWorker(int id, WorkgroupWorker workgroupWorker) { workgroupWorker = _workgroupWorkerRepository.GetNullableById(id); if (workgroupWorker == null) { Message = string.Format(Messages.NotFound, "Workgroup Worker", id); return this.RedirectToAction(a => a.Index()); } var workgroupId = workgroupWorker.Workgroup.Id; _workgroupWorkerRepository.Remove(workgroupWorker); Message = string.Format(Messages.Deleted, "Workgroup Worker"); return this.RedirectToAction(a => a.Details(workgroupId)); }