public ActionResult DeleteTerritoryInternal(int id)
        {
            if (!_authorizer.Authorize(TerritoriesPermissions.ManageInternalTerritories))
            {
                return(new HttpUnauthorizedResult());
            }

            var tir = _territoryRepositoryService.GetTerritoryInternal(id);

            if (tir == null)
            {
                return(HttpNotFound());
            }

            var territoryName = tir.Name;

            if (tir.TerritoryParts.Any())
            {
                // There are connected TerritoryParts. Don't delete the TerritoryInternalRecord
                _notifier.Error(
                    T("\"{0}\" cannot be deleted because it still has {1} connected parts (you can find them in its editor).",
                      territoryName, tir.TerritoryParts.Count));

                return(RedirectToAction("TerritoriesIndex"));
            }

            _territoryRepositoryService.Delete(id);

            _notifier.Information(T("\"{0}\" has been deleted.", territoryName));

            return(RedirectToAction("TerritoriesIndex"));
        }
예제 #2
0
        public void GetTerritoriesCountReturnsTheCorrectNumber()
        {
            Assert.That(_territoryRepositoryService.GetTerritoriesCount(), Is.EqualTo(0));

            PopulateTable(6);
            Assert.That(_territoryRepositoryService.GetTerritories().Count(), Is.EqualTo(6));
            Assert.That(_territoryRepositoryService.GetTerritoriesCount(), Is.EqualTo(6));

            PopulateTable(6, 6);
            Assert.That(_territoryRepositoryService.GetTerritories().Count(), Is.EqualTo(12));
            Assert.That(_territoryRepositoryService.GetTerritoriesCount(), Is.EqualTo(12));

            for (int i = 1; i < 6; i++)
            {
                _territoryRepositoryService.Delete(i);
            }
            Assert.That(_territoryRepositoryService.GetTerritoriesCount(), Is.EqualTo(7));
        }