/// <summary> /// Selects the source and destination. /// </summary> /// <param name="promoteCode">The promote code.</param> private static string SelectSourceAndDestination(PromoteCodeModel promoteCode) { var configFileReader = new ConfigFileReader(); ServerDetailsModel serverDetails = configFileReader.ReadConfigFile(new ServerDetailsModel { Region = promoteCode.Region }); var sourceFileName = serverDetails.SourceFileLocation + "\\" + promoteCode.FileName; return sourceFileName; }
/// <summary> /// Posts the specified promote code. /// </summary> /// <param name="promoteCode">The promote code.</param> /// <returns></returns> public HttpResponseMessage Post(PromoteCodeModel promoteCode) { if (String.IsNullOrEmpty(promoteCode.Region)) { return base.Request.CreateResponse(HttpStatusCode.BadRequest, "Please specify the region."); } SelectSourceAndDestination(promoteCode); GetConnectionString(promoteCode.Region); if (!Directory.Exists(DestinationLocation)) Directory.CreateDirectory(DestinationLocation); CopyFilesAndZip("\\Scripts.zip"); MoveCodeToServer(); return base.Request.CreateResponse(HttpStatusCode.Created, "Copy was successful."); }
/// <summary> /// Posts the specified promote code. /// </summary> /// <param name="promoteCode">The promote code.</param> /// <returns></returns> public async Task<HttpResponseMessage> Post(PromoteCodeModel promoteCode) { if (String.IsNullOrEmpty(promoteCode.Region)) { return base.Request.CreateResponse(HttpStatusCode.BadRequest, "Please specify the region!"); } string sourceFileName = SelectSourceAndDestination(promoteCode); var serverDetails = new ConfigFileReader().ReadConfigFile(new ServerDetailsModel { Region = promoteCode.Region }); serverDetails.SourceFileName = sourceFileName; //copy destination location to a private variable this.DestinationLocation = serverDetails.DestinationFileLocation; if (!Directory.Exists(serverDetails.DestinationFileLocation)) Directory.CreateDirectory(serverDetails.DestinationFileLocation); var fileProcess = new FileProcessHandler(); //Call a method to perform Xcopy fileProcess.ProcessXcopy(serverDetails); fileProcess.DeleteOldFile(serverDetails); fileProcess.ReplaceConfigFile(serverDetails); //perform the deployment to all servers deployment foreach (var server in serverDetails.ServerList) { await MoveCodeToServer(server); } return Request.CreateResponse(HttpStatusCode.Created, "Deployment Completed"); }
/// <summary> /// Selects the source and destination. /// </summary> /// <param name="promoteCode">The promote code.</param> private void SelectSourceAndDestination(PromoteCodeModel promoteCode) { if (promoteCode.Region == "DEV") { SourceLocation = GetFromConfig("SqlBUILDS"); DestinationLocation = GetFromConfig("SqlDEV"); ServerDeploymentDirectory = GetFromConfig("SqlDevDeploymentDirectory"); IntermediateDirectory = GetFromConfig("SqlTempDirectory"); } if (promoteCode.Region == "ST") { SourceLocation = GetFromConfig("SqlDEV"); DestinationLocation = GetFromConfig("SqlST"); ServerDeploymentDirectory = GetFromConfig("SqlSTDeploymentDirectory"); IntermediateDirectory = GetFromConfig("SqlTempDirectory"); } if (promoteCode.Region == "UAT") { SourceLocation = GetFromConfig("SqlST"); DestinationLocation = GetFromConfig("SqlUAT"); ServerDeploymentDirectory = GetFromConfig("SqlSTDeploymentDirectory"); IntermediateDirectory = GetFromConfig("SqlTempDirectory"); } }