public IActionResult CreateDeployment(DeployResult deployResult, string details) { var id = deployResult.Id; string path = Path.Combine(_environment.DeploymentsPath, id); IDeploymentStatusFile statusFile = _status.Open(id); if (statusFile != null) { return(StatusCode(StatusCodes.Status409Conflict, String.Format("Deployment with id '{0}' exists", id))); } FileSystemHelpers.EnsureDirectory(path); statusFile = _status.Create(id); statusFile.Status = deployResult.Status; statusFile.Message = deployResult.Message; statusFile.Deployer = deployResult.Deployer; statusFile.Author = deployResult.Author; statusFile.AuthorEmail = deployResult.AuthorEmail; statusFile.StartTime = deployResult.StartTime; statusFile.EndTime = deployResult.EndTime; // miscellaneous statusFile.Complete = true; statusFile.IsReadOnly = true; statusFile.IsTemporary = false; statusFile.ReceivedTime = deployResult.StartTime; // keep it simple regardless of success or failure statusFile.LastSuccessEndTime = deployResult.EndTime; statusFile.Save(); if (deployResult.Current) { _status.ActiveDeploymentId = id; } var logger = new StructuredTextLogger(Path.Combine(path, DeploymentManager.TextLogFile), _analytics); ILogger innerLogger; if (deployResult.Status == DeployStatus.Success) { innerLogger = logger.Log("Deployment successful."); } else { innerLogger = logger.Log("Deployment failed.", LogEntryType.Error); } if (!String.IsNullOrEmpty(details)) { innerLogger.Log(details); } return(Ok()); }
public void StructuredTextLoggerUsesHighestChildTypeToUpdateParentType() { //Arrange var analytics = new Mock <IAnalytics>(); var logger = new StructuredTextLogger(@"x:\log.log", analytics.Object); var fileSystemInfo = GetTextLoggerMockFileSystem(); const string message = "Message 1"; const string error = "Error 1"; FileSystemHelpers.Instance = fileSystemInfo.FileSystem; //Act var sublogger = logger.Log(message, LogEntryType.Message); sublogger.Log(error, LogEntryType.Error); var entries = logger.GetLogEntries(); //Assert Assert.Equal(1, entries.Count()); Assert.Equal(message, entries.First().Message); Assert.Equal(LogEntryType.Error, entries.First().Type); var subEntries = logger.GetLogEntryDetails(entries.First().Id); Assert.Equal(1, subEntries.Count()); Assert.Equal(error, subEntries.First().Message); Assert.Equal(LogEntryType.Error, subEntries.First().Type); //Clean up fileSystemInfo.MemoryStream.RealDispose(); }
public void StructuredTextLoggerLogFunction(string message, LogEntryType type) { //Arrange var analytics = new Mock <IAnalytics>(); var logger = new StructuredTextLogger(@"x:\log.log", analytics.Object); var fileSystemInfo = GetTextLoggerMockFileSystem(); FileSystemHelpers.Instance = fileSystemInfo.FileSystem; //Act logger.Log(message, type); var entries = logger.GetLogEntries(); //Assert Assert.Equal(1, entries.Count()); Assert.Equal(message, entries.First().Message); Assert.Equal(type, entries.First().Type); //Clean up fileSystemInfo.MemoryStream.RealDispose(); }