public HttpResponseMessage RedeployWorldDatabase(RedeployRequest request) { // Download the database from Github: // RemoteContentSync.RetreiveGithubFolder(ConfigManager.Config.ContentServer.DatabaseUrl); // Download the latest ACE-World release archive, extract contents into database dir, remove downloaded zip // Run all scripts, in the correct sequences. return(Request.CreateResponse(HttpStatusCode.OK, "You win!")); }
public HttpResponseMessage RedeployDatabase(RedeployRequest request) { // Only allow one request at a time: if (Database.Redeploy.RedeploymentActive) { return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "A Redeployment already in progress!")); } //TODO: Fix this hack, make the redeploy request object work properly: bool forceDeploy = false; //Request.RequestUri.Query.ToLowerInvariant().Contains("request.force=true") ? true : false; SourceSelectionOption dataSource = Request.RequestUri.Query.ToLowerInvariant().Contains("request.dataSource=") ? SourceSelectionOption.LocalDisk : SourceSelectionOption.Github; DatabaseSelectionOption databaseName = DatabaseSelectionOption.None; foreach (KeyValuePair <string, string> query in Request.GetQueryNameValuePairs()) { if (query.Key.ToLowerInvariant() == "request.sourceselection") { Enum.TryParse <SourceSelectionOption>(query.Value, out dataSource); } if (query.Key.ToLowerInvariant() == "request.databaseselection") { // try to parse selection enum Enum.TryParse <DatabaseSelectionOption>(query.Value, out databaseName); } if (query.Key.ToLowerInvariant() == "request.force") { // try to parse selection enum if (Convert.ToBoolean(query.Value)) { forceDeploy = true; } } } // Check to determine if a userModified flag has been set in the database var modifiedFlagPresent = WorldDb.UserModifiedFlagPresent(); if (!modifiedFlagPresent || forceDeploy) { string errorResult = Database.Redeploy.RedeployDatabaseFromSource(databaseName, dataSource); if (errorResult == null) { return(Request.CreateResponse(HttpStatusCode.OK, "Database(s) have been redeployed and should now be completely reset. Please remember to recreate your user accounts if you reset the authentication database!")); } else { return(Request.CreateResponse(HttpStatusCode.InternalServerError, $"There was an error durring your request. {errorResult}")); } } return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "You have unexported changes in your database. Please specify 'force = true' in your request.")); }
public HttpResponseMessage RedeployWorldDatabase(RedeployRequest request) { return(Request.CreateResponse(HttpStatusCode.NotImplemented)); }