public ActionResult CreateDimension(EditDimensionViewModel viewModel)
        {
            if (viewModel != null && viewModel.ProjectId != null && ModelState.IsValid)
            {
                bool hasMultipleRequests = ViewData.ContainsKey("MultipleRequests");
                int  dimensionId         = -1;

                if (!hasMultipleRequests)
                {
                    try
                    {
                        dimensionId = Repository.Create(viewModel.ToDomainModel());
                    }
                    catch (EntityAlreadyExistsException ex)
                    {
                        ModelState.AddModelError("Name", ex.Message);

                        return(RedirectToAction("EditDimension", new { viewModel.ProjectId, viewModel.DimensionId }));
                    }

                    GlobalHost.ConnectionManager.GetHubContext <MorphologicalChartHub>().Clients.All.refresh();
                }

                if (dimensionId > 0 || hasMultipleRequests)
                {
                    return(RedirectToAction("EditProject", "Project", new { viewModel.ProjectId }));
                }
            }

            return(View("Error"));
        }
        public ActionResult EditDimension(int?projectId, int?dimensionId)
        {
            if (projectId == null)
            {
                return(View("Error"));
            }

            EditDimensionViewModel viewModel;

            if (dimensionId != null)
            {
                Dimension dimension = Repository.Get(dimensionId.Value).SingleOrDefault();

                if (dimension == null)
                {
                    // If a previous action caused the model to be invalid (like a failed update or creation), return the view so that it can display the errors
                    if (!ModelState.IsValid)
                    {
                        viewModel = new EditDimensionViewModel {
                            ProjectId = projectId
                        }
                    }
                    ;
                    else
                    {
                        return(View("Error"));
                    }
                }
                else
                {
                    viewModel = new EditDimensionViewModel(dimension);
                }
            }
            else
            {
                viewModel = new EditDimensionViewModel {
                    ProjectId = projectId
                }
            };

            return(View("EditDimension", viewModel));
        }