/// <summary>
        /// Instantiates a BuildItem with the given build script.
        /// </summary>
        /// <param name="script">The build script responsible for creating the database object.</param>
        /// <param name="dependencies">The build items on which this build item depends.</param>
        /// <param name="referencers">The build items that depend on this object.</param>
        /// <param name="objectExists">A flag that indicates whether a version of this database object already exists.</param>
        internal BuildItem(ScriptFile script, IEnumerable<BuildItem> dependencies, IEnumerable<BuildItem> referencers, bool objectExists)
        {
            Script = script;
            Dependencies = dependencies;
            Referencers = referencers;
            DependencyDepth = FindDependencyDepth(Referencers, 0);
            status = script.ScriptError != null ? script.ScriptError.Status : BuildStatusType.None;

            if (script.Sql.ScriptAction == ScriptActionType.Drop)
            {
                BuildAction = BuildActionType.Drop;
            }
            else if (objectExists && Script.ScriptObject.ObjectType == DatabaseObjectType.Type)
            {
                BuildAction = BuildActionType.DropAndCreate;
            }
            else if (objectExists)
            {
                BuildAction = BuildActionType.Alter;
            }
            else
            {
                BuildAction = BuildActionType.Create;
            }
        }
Example #2
0
        /// <summary>
        /// Instantiates a BuildItem with the given build script.
        /// </summary>
        /// <param name="script">The build script responsible for creating the database object.</param>
        /// <param name="dependencies">The build items on which this build item depends.</param>
        /// <param name="referencers">The build items that depend on this object.</param>
        /// <param name="objectExists">A flag that indicates whether a version of this database object already exists.</param>
        internal BuildItem(ScriptFile script, IEnumerable <BuildItem> dependencies, IEnumerable <BuildItem> referencers, bool objectExists)
        {
            Script          = script;
            Dependencies    = dependencies;
            Referencers     = referencers;
            DependencyDepth = FindDependencyDepth(Referencers, 0);
            _status         = script.ScriptError != null ? script.ScriptError.Status : BuildStatusType.None;

            if (script.Sql != null && script.Sql.ScriptAction == ScriptActionType.Drop)
            {
                BuildAction = BuildActionType.Drop;
            }
            else if (objectExists && script.Sql != null && Script.ScriptObject.ObjectType == DatabaseObjectType.Type)
            {
                BuildAction = BuildActionType.DropAndCreate;
            }
            else if (objectExists)
            {
                BuildAction = BuildActionType.Alter;
            }
            else
            {
                BuildAction = BuildActionType.Create;
            }
        }
Example #3
0
        /// <summary>
        /// Marks this build item as having successfully built.
        /// </summary>
        /// <remarks>
        /// Calling this method will update the <see cref="Status"/> property.
        /// </remarks>
        internal void ReportSuccess()
        {
            var oldStatus = _status;

            this._status = BuildStatusType.Success;

            if (StatusChanged != null)
            {
                StatusChanged(this, new BuildStatusEventArgs(this._status, oldStatus));
            }
        }
Example #4
0
        /// <summary>
        /// Marks this build item as having entered an error state.
        /// </summary>
        /// <remarks>
        /// Calling this method will update the <see cref="Status"/> and <see cref="Error"/> properties.
        /// </remarks>
        /// <param name="error">The error state of the build item.</param>
        internal void ReportError(BuildErrorBase error)
        {
            var oldStatus = _status;

            this._status = error.Status;
            this._error  = error;

            if (StatusChanged != null)
            {
                StatusChanged(this, new BuildStatusEventArgs(this._status, oldStatus));
            }
        }
Example #5
0
        public void RunScan(ApplicationProfile app, string scan_id,
                            string modules, Action <string, string> ScanMethod, BuildStatusType running, BuildStatusType failure)
        {
            var      stopWatch = new Stopwatch();
            TimeSpan ts;
            string   elapsedTime;

            stopWatch.Start();

            ScanMethod(app.id, modules);
            var scanStatus = running;

            while (scanStatus == running)
            {
                ts          = stopWatch.Elapsed;
                elapsedTime = string.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                                            ts.Hours, ts.Minutes, ts.Seconds,
                                            ts.Milliseconds / 10);
                _logger.LogInformation($"Scan {scan_id} is still running and has been running for {elapsedTime}.");
                Thread.Sleep(20000);
                scanStatus = _veracodeService.GetScanStatus(app.id, $"{scan_id}");
            }

            ts          = stopWatch.Elapsed;
            elapsedTime = string.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                                        ts.Hours, ts.Minutes, ts.Seconds,
                                        ts.Milliseconds / 10);
            stopWatch.Stop();

            if (scanStatus == failure)
            {
                throw new Exception("Scan status returned an error status.");
            }

            _logger.LogInformation($"Scan complete for {scan_id} and took {elapsedTime}.");
        }
Example #6
0
 /// <summary>
 /// Creates an instance of event args for a status change.
 /// </summary>
 /// <param name="newStatus">The value of the new status.</param>
 /// <param name="oldStatus">The value of the old status.</param>
 public BuildStatusEventArgs(BuildStatusType newStatus, BuildStatusType oldStatus)
 {
     NewStatus = newStatus;
     OldStatus = oldStatus;
 }
Example #7
0
        /// <summary>
        /// Marks this build item as having successfully built.
        /// </summary>
        /// <remarks>
        /// Calling this method will update the <see cref="Status"/> property.
        /// </remarks>
        internal void ReportSuccess()
        {
            var oldStatus = _status;
            this._status = BuildStatusType.Success;

            if (StatusChanged != null)
            {
                StatusChanged(this, new BuildStatusEventArgs(this._status, oldStatus));
            }
        }
Example #8
0
        /// <summary>
        /// Marks this build item as having entered an error state.
        /// </summary>
        /// <remarks>
        /// Calling this method will update the <see cref="Status"/> and <see cref="Error"/> properties.
        /// </remarks>
        /// <param name="error">The error state of the build item.</param>
        internal void ReportError(BuildErrorBase error)
        {
            var oldStatus = _status;
            this._status = error.Status;
            this._error = error;

            if (StatusChanged != null)
            {
                StatusChanged(this, new BuildStatusEventArgs(this._status, oldStatus));
            }
        }
Example #9
0
 public BuildStatus FindByType(BuildStatusType type)
 {
     return(Collection.Find("$[?(@.BuildStatusType == '" + type + "')]"));
 }
Example #10
0
 /// <summary>
 /// Creates an instance of event args for a status change.
 /// </summary>
 /// <param name="newStatus">The value of the new status.</param>
 /// <param name="oldStatus">The value of the old status.</param>
 public BuildStatusEventArgs(BuildStatusType newStatus, BuildStatusType oldStatus)
 {
     NewStatus = newStatus;
     OldStatus = oldStatus;
 }
        public static string Convert(BuildStatusType status)
        {
            string parsed_status;

            switch (status)
            {
            case BuildStatusType.Incomplete:
                parsed_status = "Incomplete";
                break;

            case BuildStatusType.NotSubmittedtoEngine:
                parsed_status = "Not Submitted to Engine";
                break;

            case BuildStatusType.SubmittedtoEngine:
                parsed_status = "Submitted to Engine";
                break;

            case BuildStatusType.ScanErrors:
                parsed_status = "Scan Errors";
                break;

            case BuildStatusType.ScanInProcess:
                parsed_status = "Scan In Process";
                break;

            case BuildStatusType.ScanCancelled:
                parsed_status = "Scan Cancelled";
                break;

            case BuildStatusType.ScanInternalError:
                parsed_status = "Scan Internal Error";
                break;

            case BuildStatusType.PendingInternalReview:
                parsed_status = "Pending Internal Review";
                break;

            case BuildStatusType.ResultsReady:
                parsed_status = "Results Ready";
                break;

            case BuildStatusType.PreScanSubmitted:
                parsed_status = "Pre Scan Submitted";
                break;

            case BuildStatusType.PreScanFailed:
                parsed_status = "Pre Scan Failed";
                break;

            case BuildStatusType.PreScanSuccess:
                parsed_status = "Pre Scan Success";
                break;

            case BuildStatusType.NoModulesDefined:
                parsed_status = "No Modules Defined";
                break;

            case BuildStatusType.PendingVendorConfirmation:
                parsed_status = "Pending Vendor Confirmation";
                break;

            case BuildStatusType.VendorReviewing:
                parsed_status = "Vendor Reviewing";
                break;

            case BuildStatusType.PreScanCancelled:
                parsed_status = "Pre Scan Cancelled";
                break;

            case BuildStatusType.ScanOnHold:
                parsed_status = "Scan On Hold";
                break;

            default:
                throw new ArgumentOutOfRangeException("Build status can only be between 0 - 16");
            }
            return(parsed_status);
        }
Example #12
0
        public static Color MapColor(this IDictionary <BuildStatusType, BuildStatus> src, BuildStatusType statusType)
        {
            if (src.ContainsKey(statusType) && src[statusType].ColorA != 0)
            {
                var status = src[statusType];
                return(Color.FromArgb(status.ColorA, status.ColorR, status.ColorG, status.ColorB));
            }

            switch (statusType)
            {
            case BuildStatusType.Failed:
                return(Preferences.FAIL_COLOR);

            case BuildStatusType.Success:
                return(Preferences.SUCCESS_COLOR);

            case BuildStatusType.Unstable:
                return(Preferences.UNSTABLE_COLOR);

            case BuildStatusType.Building:
            case BuildStatusType.Pending:
                return(Preferences.BUILDING_COLOR);

            case BuildStatusType.Aborted:
                return(Preferences.FAIL_COLOR);

            case BuildStatusType.Disabled:
            case BuildStatusType.NotBuilt:
            case BuildStatusType.Unknown:
            default:
                return(Preferences.DISABLED_COLOR);
            }
        }
Example #13
0
 public static bool IsVisible(this IDictionary <BuildStatusType, BuildStatus> src, BuildStatusType statusType)
 {
     return(src.ContainsKey(statusType)
         ? src[statusType].Visible
         : true);
 }