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)));
        }
示例#2
0
        public void TestFieldToTestWithAValueOfTestValueDoesNotSave1()
        {
            var thisFar = false;

            try
            {
                #region Arrange
                var existingAddress = CreateValidEntities.WorkgroupAddress(1);
                existingAddress.SetIdTo(1);
                WorkgroupAddress newAddress = null;
                thisFar = true;
                #endregion Arrange

                #region Act
                WorkgroupAddressService.CompareAddress(newAddress, existingAddress);
                #endregion Act
            }
            catch (Exception ex)
            {
                Assert.IsTrue(thisFar);
                Assert.IsNotNull(ex);
                Assert.AreEqual("New Address may not be null", ex.Message);
                throw;
            }
        }