예제 #1
0
        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);
        }
예제 #2
0
        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));
        }