Beispiel #1
0
        /// <summary>
        /// Establishes an association between a check and a project.
        /// </summary>
        /// <param name="checkName">Check to enable on project.</param>
        /// <param name="project">Project to enable check on.</param>
        public void EnableCheckForProject(string checkName, string project)
        {
            var checkRow   = Checks.Single(c => c.Name.Equals(checkName));
            var projectRow = Projects.Single(p => p.Name.Equals(project));

            if (ProjectChecks.Any(row => row.CheckID == checkRow.ID && row.ProjectID == projectRow.ID))
            {
                return;
            }
            ProjectChecks.AddProjectChecksRow(checkRow, projectRow);
        }
Beispiel #2
0
        /// <summary>
        /// Removes the association between a check and a project.
        /// If the association doesn't exist, nothing happens.
        /// </summary>
        /// <param name="checkName">Check to disable on project.</param>
        /// <param name="project">Project to disable check on.</param>
        public void DisableCheckForProject(string checkName, string project)
        {
            var candidates = from pc in ProjectChecks
                             join prj in Projects on pc.ProjectID equals prj.ID
                             join check in Checks on pc.CheckID equals check.ID
                             where check.Name.Equals(checkName)
                             where prj.Name.Equals(project)
                             select pc;

            if (candidates.Count() == 0)
            {
                return;
            }

            ProjectChecks.RemoveProjectChecksRow(candidates.First());
        }
Beispiel #3
0
        /// <summary>
        /// Establishes or removes an association between a check and all projects.
        /// </summary>
        /// <param name="checkName">Check to enable or disable on all projects.</param>
        /// <param name="enable">If true, an association will be established. If false, the association will be removed if any.</param>
        public void EnableCheckForAllProjects(object checkName, bool enable)
        {
            var checkRow = Checks.Single(c => c.Name.Equals(checkName));

            if (enable)
            {
                //Add any missing entries for this check
                foreach (var projectRow in Projects)
                {
                    if (ProjectChecks.Any(row => row.CheckID == checkRow.ID && row.ProjectID == projectRow.ID))
                    {
                        continue;
                    }
                    ProjectChecks.AddProjectChecksRow(checkRow, projectRow);
                }
            }
            else
            {
                //Remove existing entries for this check
                ProjectChecks.Where(c => c.ChecksRow.Name.Equals(checkName)).ToList().ForEach(ProjectChecks.RemoveProjectChecksRow);
            }
        }