/// <summary>
        /// Returns a list of CxSAST projects available to the current user. This is used primarily for display purposes. However, you
        /// can use this list to get projectIDs which will be used later on.
        /// </summary>
        /// <returns>CxSDKWebService.ProjectDisplayData[]</returns>
        public CxSDKWebService.ProjectDisplayData[] GetProjectsToDisplay()
        {
            if (_sessionId == null)
            {
                throw new AuthenticationException();
            }

            CxSDKWebService.ProjectDisplayData[] projects = new CxSDKWebService.ProjectDisplayData[0];
            try
            {
                CxSDKWebService.CxWSResponseProjectsDisplayData response =
                    CallCheckmarxApi(() => SoapClient.GetProjectsDisplayData(_sessionId));
                return(response.projectList);
            }
            catch (ResponseException e)
            {
                log.Error(String.Format("Unable to get projects to display: {0} {1}", e.GetType().Name, e.Message), e);
            }
            catch (CommunicationException e)
            {
                log.Error(String.Format("Unable to communicate to SOAP API at endpoint {0}: {1} {2}", _endpoint.DnsSafeHost, e.GetType().Name, e.Message), e);
            }

            return(projects);
        }
示例#2
0
        public resultClass makeProjectScanCsv_1()
        {
            _token.status = -1;
            csvHelper cvsHelper = new csvHelper();


            if ((_token.start_time == null))
            {
                Console.Error.WriteLine("Start time must be provided.");
                return(_token);
            }
            if (LogAdminIn())
            {
                CxSDKWebService.CxSDKWebServiceSoapClient cxSDKProxy = new CxSDKWebService.CxSDKWebServiceSoapClient(CxSDKWebService.CxSDKWebServiceSoapClient.EndpointConfiguration.CxSDKWebServiceSoap12);
                Dictionary <long, string> presets = GetPresetConfiguration(cxSDKProxy);
                Dictionary <long, CxSDKWebService.ProjectDisplayData> projects = GetAllProjects(cxSDKProxy);
                List <csvScanOutput_1> csvOutput = new List <csvScanOutput_1>();
                List <CxSDKWebService.ProjectScannedDisplayData> scannedDisplayDatasList = GetProjectScannedList(cxSDKProxy);
                foreach (CxSDKWebService.ProjectScannedDisplayData scans in scannedDisplayDatasList)
                {
                    CxSDKWebService.ProjectDisplayData proj     = projects[scans.ProjectID];
                    CxSDKWebService.CxDateTime         scanDate = proj.LastScanDate;

                    DateTime lastScanDate = DateTime.Parse(String.Format("{0}/{1}/{2} {3}:{4}:{5}", scanDate.Month, scanDate.Day, scanDate.Year, scanDate.Hour, scanDate.Minute, scanDate.Second));
                    if (lastScanDate > _token.start_time)
                    {
                        if ((_token.end_time == null) || (lastScanDate < _token.end_time))
                        {
                            if ((_token.project_name == null) || (scans.ProjectName.Contains(_token.project_name)))
                            {
                                csvScanOutput_1 csv = new csvScanOutput_1()
                                {
                                    Project_Name         = scans.ProjectName,
                                    Owner                = proj.Owner,
                                    Team                 = scans.TeamName,
                                    Preset               = proj.Preset,
                                    Last_Scan            = lastScanDate,
                                    Total_Vulerabilities = scans.TotalVulnerabilities,
                                    High                 = scans.HighVulnerabilities,
                                    Medium               = scans.MediumVulnerabilities,
                                    Low  = scans.LowVulnerabilities,
                                    Info = scans.InfoVulnerabilities
                                };
                                csvOutput.Add(csv);
                                if ((_token.pipe) || (_token.debug))
                                {
                                    Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", csv.Project_Name, csv.Owner, csv.Team, csv.Preset, csv.Last_Scan, csv.Total_Vulerabilities, csv.High, csv.Medium, csv.Low, csv.Info);
                                }
                            }
                        }
                    }
                }
                if (!_token.pipe)
                {
                    _token.status = cvsHelper.writeCVSFile(csvOutput, _token);
                }
            }
            return(_token);
        }