public ActionResult Add(int id, int projectId, Requirement requirement)
        {
            ModelState.Remove("requirement.Project");
            ModelState.Remove("requirement.SquareType");

            try
            {
                // load the project step
                var projectStep = _projectService.GetProjectStep(id, CurrentUserId);

                if (ModelState.IsValid)
                {
                    _projectService.SaveRequirement(projectId, projectStep.Step.SquareType.Id, requirement);

                    Message = string.Format(Messages.Saved, "requirements");
                    return RedirectToAction(projectStep.Step.Action, projectStep.Step.Controller, new { id = projectStep.Id, projectId = projectStep.Project.Id });
                }

                var viewModel = RequirementViewModel.Create(Db, _projectService, projectId, id, CurrentUserId, requirement);
                return View(viewModel);
            }
            catch (SecurityException)
            {
                return this.RedirectToAction<ErrorController>(a => a.NoAccessToStep());
            }
        }
Пример #2
0
        public static RequirementViewModel Create(SquareContext db, IProjectService projectService, int projectId, int projectStepId, string userId, Requirement requirement = null)
        {
            Check.Require(db != null, "db is required.");

            var viewModel = new RequirementViewModel();
            viewModel.SetProjectInfo(projectService, projectId, projectStepId, userId);
            viewModel.Requirement = requirement ?? new Requirement(){RequirementId = string.Format("R{0}", viewModel.Project.Requirements.Count + 1)};

            return viewModel;
        }
Пример #3
0
        public static RequirementDefectViewModel Create(SquareContext db, IProjectService projectService, int projectId, int projectStepId, string userId, Requirement requirement, RequirementDefect requirementDefect = null)
        {
            Check.Require(db != null, "db is required.");
            Check.Require(projectService != null, "projectService is required.");
            Check.Require(requirement != null, "requirement is required.");

            var viewModel = new RequirementDefectViewModel(){Requirement = requirement, RequirementDefect = requirementDefect ?? new RequirementDefect()};
            viewModel.SetProjectInfo(projectService, projectId, projectStepId, userId);

            return viewModel;
        }
        public static RequirementCategoryViewModel Create(SquareContext db, IProjectService projectService, int projectId, int projectStepId, string userId, Requirement requirement)
        {
            Check.Require(db != null, "db is required.");
            Check.Require(projectService != null, "projectService is required.");
            Check.Require(requirement != null, "requirement is required.");

            var viewModel = new RequirementCategoryViewModel() {Requirement = requirement};
            viewModel.SetProjectInfo(projectService, projectId, projectStepId, userId);

            viewModel.Categories = db.Categories.Where(a => a.SquareType.Id == viewModel.ProjectStep.Step.SquareType.Id && a.Project.Id == projectId).ToList();

            return viewModel;
        }
Пример #5
0
        /// <summary>
        /// Save a Requirement
        /// </summary>
        /// <param name="id">Project Id</param>
        /// <param name="squareType">Square Type Id</param>
        /// <param name="requirement"></param>
        /// <param name="modelState"></param>
        public void SaveRequirement(int id, int squareTypeId, Requirement requirement, int? requirementId = null)
        {
            using (var db = new SquareContext())
            {
                var project = db.Projects.Where(a => a.Id == id).Single();
                var squareType = db.SquareTypes.Where(a => a.Id == squareTypeId).Single();

                // adding a new one
                if (!requirementId.HasValue)
                {
                    requirement.Project = project;
                    requirement.SquareType = squareType;

                    db.Requirements.Add(requirement);
                }
                // updating an existing one
                else
                {
                    // load the existing one
                    var existingReq = db.Requirements.Where(a => a.Id == requirementId.Value).Single();

                    // update the values
                    existingReq.RequirementId = requirement.RequirementId;
                    existingReq.Name = requirement.Name;
                    existingReq.RequirementText = requirement.RequirementText;
                    existingReq.Source = requirement.Source;

                    existingReq.Project = project;
                    existingReq.SquareType = squareType;
                }

                try
                {
                    db.SaveChanges();
                }
                catch (DbEntityValidationException dbEx)
                {

                    throw;
                }

            }
        }