Beispiel #1
0
        private void LogMachinePublicationStep(MachinePublication machinePublication, DeploymentStep deploymentStep, AspNetDeployEntities entities, MachinePublicationLogEvent @event, IExceptionInfo lastException = null)
        {
            MachinePublicationLog machinePublicationLog = new MachinePublicationLog();

            machinePublicationLog.CreatedDate        = DateTime.UtcNow;
            machinePublicationLog.MachinePublication = machinePublication;
            machinePublicationLog.Event            = @event;
            machinePublicationLog.DeploymentStepId = deploymentStep.Id;
            entities.MachinePublicationLog.Add(machinePublicationLog);

            if (lastException != null)
            {
                this.RecordException(entities, null, lastException, machinePublicationLog);
            }

            entities.SaveChanges();
        }
Beispiel #2
0
        private void RecordException(AspNetDeployEntities entities, ExceptionEntry parentException, IExceptionInfo lastException, MachinePublicationLog machinePublicationLog)
        {
            ExceptionEntry exceptionEntry = new ExceptionEntry();

            machinePublicationLog.Exception = exceptionEntry;
            exceptionEntry.Message          = lastException.Message;
            exceptionEntry.Source           = lastException.Source;
            exceptionEntry.StackTrace       = lastException.StackTrace;
            exceptionEntry.TypeName         = lastException.TypeName;
            entities.ExceptionEntry.Add(exceptionEntry);

            if (parentException != null)
            {
                parentException.InnerExceptionEntry = exceptionEntry;
            }
            else
            {
                AspNetDeployExceptionEntry aspNetDeployExceptionEntry = new AspNetDeployExceptionEntry();
                aspNetDeployExceptionEntry.TimeStamp      = DateTime.UtcNow;
                aspNetDeployExceptionEntry.ExceptionEntry = exceptionEntry;
                entities.AspNetDeployExceptionEntry.Add(aspNetDeployExceptionEntry);
            }

            foreach (IExceptionDataInfo exceptionDataInfo in lastException.ExceptionData)
            {
                ExceptionEntryData data = new ExceptionEntryData();
                data.ExceptionEntry = exceptionEntry;
                data.IsProperty     = exceptionDataInfo.IsProperty;
                data.Name           = exceptionDataInfo.Name;
                data.Value          = exceptionDataInfo.Value;
                entities.ExceptionEntryData.Add(data);
            }

            if (lastException.InnerException != null)
            {
                this.RecordException(entities, exceptionEntry, lastException.InnerException, machinePublicationLog);
            }
        }