public ActionResult Add(ResourceTechnologiesAddViewModel viewModel)
        {
            ValidateResourceTechnolgies(viewModel);

            if (ModelState.IsValid)
            {
                var resourceTechnolgies = new ResourceTechnologies()
                {
                    ResourceId   = viewModel.ResourceId,
                    TechnologyId = viewModel.TechnologyId,
                };

                _resourceTechnologiesRepository.Add(resourceTechnolgies);

                TempData["Message"] = "Your technology was successfully added!";

                return(RedirectToAction("Edit", "Resources", new { id = viewModel.ResourceId }));
            }


            viewModel.Resource = _resourcesRepository.Get(viewModel.ResourceId);
            viewModel.Init(_technologyRepository);

            return(View(viewModel));
        }
 private void ValidateResourceTechnolgies(ResourceTechnologiesAddViewModel viewModel)
 {
     if (ModelState.IsValidField("ResourceId") &&
         ModelState.IsValidField("TechnologyId"))
     {
         if (_resourcesRepository.ResourceHasTechnologyAlready(viewModel.ResourceId, viewModel.TechnologyId))
         {
             ModelState.AddModelError("TechnologyId",
                                      "This technology already exists for this resource.");
         }
     }
 }
        public ActionResult Add(int resourceId)
        {
            var resource = _resourcesRepository.Get(resourceId);

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

            var viewModel = new ResourceTechnologiesAddViewModel()
            {
                Resource = resource
            };

            viewModel.Init(_technologyRepository);

            return(View(viewModel));
        }