/// <summary> /// Step 10 /// </summary> /// <returns></returns> public ActionResult AddAddresses(int id) { if (id == 0) { Message = "Workgroup must be created before proceeding"; return(this.RedirectToAction(a => a.CreateWorkgroup())); } ViewBag.StepNumber = 10; var workgroup = _workgroupRepository.GetNullableById(id); if (workgroup == null) { Message = "Workgroup not found."; this.RedirectToAction <WorkgroupController>(a => a.Index(false)); } if (workgroup.Administrative) { return(this.RedirectToAction <WorkgroupController>(a => a.Index(false))); } var viewModel = WorkgroupAddressViewModel.Create(workgroup, _stateRepository, true); viewModel.WorkgroupAddress = new WorkgroupAddress(); viewModel.WorkgroupAddress.Workgroup = workgroup; return(View(viewModel)); }
public ActionResult AddAddresses(int id, WorkgroupAddress workgroupAddress) { ViewBag.StepNumber = 10; var workgroup = _workgroupRepository.GetNullableById(id); if (workgroup == null) { Message = "Workgroup not found."; this.RedirectToAction <WorkgroupController>(a => a.Index(false)); } workgroupAddress.Workgroup = workgroup; ModelState.Clear(); workgroupAddress.TransferValidationMessagesTo(ModelState); if (!ModelState.IsValid) { ErrorMessage = "Address not valid"; var viewModel = WorkgroupAddressViewModel.Create(workgroup, _stateRepository, true); viewModel.WorkgroupAddress = workgroupAddress; viewModel.WorkgroupAddress.Workgroup = workgroup; return(View(viewModel)); } var matchFound = 0; foreach (var address in workgroup.Addresses) { matchFound = _workgroupAddressService.CompareAddress(workgroupAddress, address); if (matchFound > 0) { break; } } if (matchFound > 0) { var matchedAddress = workgroup.Addresses.Single(a => a.Id == matchFound); if (!matchedAddress.IsActive) { Message = "Address created."; matchedAddress.IsActive = true; _workgroupRepository.EnsurePersistent(workgroup); } else { Message = "This Address already exists."; } } else { Message = "Address created"; workgroup.AddAddress(workgroupAddress); _workgroupRepository.EnsurePersistent(workgroup); } return(this.RedirectToAction(a => a.Addresses(id))); }