private ApprovedSoftwareList getSelectedApprovedSoftwareList()
        {
            ApprovedSoftwareList result = null;

            result = (ApprovedSoftwareList)approvedListsBox.SelectedItem;
            return(result);
        }
        private void approvedListsBox_SelectedValueChanged(object sender, EventArgs e)
        {
            ApprovedSoftwareList approvedSoftwareList = (ApprovedSoftwareList)approvedListsBox.SelectedItem;

            if (approvedSoftwareList != null)
            {
                loadApprovedSoftwareTableFromList(approvedSoftwareList.ApprovedSoftwares);
                updateColorDisplaySample();
            }
        }
 private void approveSelectedSoftware(ApprovedSoftwareList list, ApprovedSoftware.ApprovedByCodes approvedBy)
 {
     foreach (DataGridViewRow row in sccmDataTable.SelectedRows)
     {
         _edited = true;
         int currentIndex = row.Index;
         list.addSoftware(approvedBy, OpenProject.SccmTableEntries[currentIndex].Software);
         OpenProject.SccmTableEntries[currentIndex].IsHighlighted = true;
         highlightSccmRow(row, list.ForegroundColor, list.BackgroundColor);
     }
 }
        private List <ApprovedSoftware> getSelectedApprovalEntries()
        {
            List <ApprovedSoftware> result = new List <ApprovedSoftware>();
            ApprovedSoftwareList    selectedApprovedSoftwareList = getSelectedApprovedSoftwareList();

            foreach (DataGridViewBand row in approvedSoftwareDataGrid.SelectedRows)
            {
                int index = row.Index;
                result.Add(selectedApprovedSoftwareList.ApprovedSoftwares[index]);
            }
            return(result);
        }
 private void deleteSelectedApprovedEntries()
 {
     if (MessageBox.Show("Are you certain you want to delete the selected software from the list?", "Delete Approved Software", MessageBoxButtons.OKCancel) ==
         DialogResult.OK)
     {
         ApprovedSoftwareList selectedApprovedSoftwareList = getSelectedApprovedSoftwareList();
         foreach (ApprovedSoftware entry in getSelectedApprovalEntries())
         {
             // Accessing the list directly is faster than the native .removeSoftware method,
             // which looks for value equivalence vs actual identity.
             selectedApprovedSoftwareList.ApprovedSoftwares.Remove(entry);
         }
         loadApprovedSoftwareTableFromList(selectedApprovedSoftwareList.ApprovedSoftwares);
     }
 }
        private void setColorsButton_Click(object sender, EventArgs e)
        {
            ApprovedSoftwareList selectedList = getSelectedApprovedSoftwareList();
            BackgroundAndForegroundColorDialog colorDialog = new BackgroundAndForegroundColorDialog(selectedList.ForegroundColor, selectedList.BackgroundColor);

            if (colorDialog.ShowDialog() == DialogResult.OK)
            {
                selectedList.ForegroundColor = colorDialog.ForegroundColor;
                selectedList.BackgroundColor = colorDialog.BackgroundColor;
                updateColorDisplaySample();
                highlightSoftwareEntries(OpenProject.SccmTableEntries);
                loadSccmEntriesFromProject();
                _edited = true;
                setPageTitleWithProject();
            }
        }
        private void updateColorDisplaySample()
        {
            ApprovedSoftwareList list = getSelectedApprovedSoftwareList();
            Color foregroundColor     = SystemColors.ControlText;
            Color backgroundColor     = Color.LightGreen;

            if (list.ForegroundColor != null)
            {
                foregroundColor = Color.FromArgb(list.ForegroundColor.Value);
            }
            if (list.BackgroundColor != null)
            {
                backgroundColor = Color.FromArgb(list.BackgroundColor.Value);
            }
            colorDisplayExampleLabel.ForeColor = foregroundColor;
            colorDisplayExampleLabel.BackColor = backgroundColor;
        }
        private ApprovedSoftwareList getOrCreateApprovedSoftwareListByName(String name)
        {
            ApprovedSoftwareList        newList       = null;
            List <ApprovedSoftwareList> matchingLists =
                (from list in ApprovedSoftwareLists
                 where list.Name.Equals(name)
                 select list).ToList();

            if (matchingLists.Count == 1)
            {
                newList = matchingLists.First();
            }
            else
            {
                newList = new ApprovedSoftwareList()
                {
                    Name = name
                };
            }
            return(newList);
        }
        private String promptForNewSoftwareList(bool showSoftwareListAfterCreation)
        {
            ApprovedSoftwareListNamePrompt namePrompt = new ApprovedSoftwareListNamePrompt();

            namePrompt.ShowDialog();
            String listName = null;

            if (namePrompt.DialogResult == DialogResult.OK)
            {
                listName = namePrompt.ApprovedSoftwareListName;
                _edited  = true;
                ApprovedSoftwareList newList = new ApprovedSoftwareList(listName);
                OpenProject.ApprovedSoftwareLists.Add(newList);
                databindApprovedSoftwareLists();
                if (showSoftwareListAfterCreation)
                {
                    displayTabPage("approvedSoftwareLists");
                    approvedListsBox.SelectedItem = newList;
                }
            }
            return(listName);
        }
        public bool isFiltered(Software item, InventoryProject projectContext)
        {
            bool result = false;

            switch (FilterType)
            {
            case FilterType.LOGICAL_AND:
                result = (Filter1.isFiltered(item, projectContext) && Filter2.isFiltered(item, projectContext));
                break;

            case FilterType.LOGICAL_OR:
                result = (Filter1.isFiltered(item, projectContext) || Filter2.isFiltered(item, projectContext));
                break;

            case FilterType.APPROVED_SOFTWARE_LIST:
                ApprovedSoftwareList           listToApply     = projectContext.getApprovedSoftwareListByName(ApprovedSoftwareListName);
                IEnumerable <ApprovedSoftware> matchingEntries =
                    from approvedSoftware in listToApply.ApprovedSoftwares
                    where approvedSoftware.SoftwareExample.SoftwareCode.Equals(item.SoftwareCode)
                    select approvedSoftware;
                foreach (ApprovedSoftware checkingEntry in matchingEntries)
                {
                    if (checkingEntry.softwareMatches(item))
                    {
                        result = true;
                        break;
                    }
                }
                break;
            }
            if (IsNegated)
            {
                result = !result;
            }
            return(result);
        }
        private List <SoftwareInventoryTableEntry> hightlightSoftwareEntiresForList(List <SoftwareInventoryTableEntry> entries, ApprovedSoftwareList list)
        {
            List <SoftwareInventoryTableEntry> highlightedEntries = new List <SoftwareInventoryTableEntry>();

            foreach (ApprovedSoftware approval in list.ApprovedSoftwares)
            {
                List <SoftwareInventoryTableEntry> matchingEntries =
                    (from entry in entries
                     where approval.softwareMatches(entry.Software)
                     select entry).ToList();
                foreach (SoftwareInventoryTableEntry entry in matchingEntries)
                {
                    entry.IsHighlighted   = true;
                    entry.ForegroundColor = list.ForegroundColor;
                    entry.BackgroundColor = list.BackgroundColor;
                    highlightedEntries.Add(entry);
                }
            }
            return(highlightedEntries);
        }