Esempio n. 1
0
 public HttpResponseMessage Create([FromBody] AceObject request)
 {
     if (WorldDb.SaveObject(request))
     {
         return(Request.CreateResponse(HttpStatusCode.OK, new { message = "changes saved." }));
     }
     else
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { message = "Unable to save changes." }));
     }
 }
Esempio n. 2
0
        public HttpResponseMessage Get(uint weenieId)
        {
            var weenie = WorldDb.GetObject(weenieId);

            if (weenie != null)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, weenie));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }
        }
Esempio n. 3
0
        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."));
        }
Esempio n. 4
0
        public HttpResponseMessage Update([FromBody] AceObject request)
        {
            // force this to true, as we're explicitly doing an update
            request.HasEverBeenSavedToDatabase = true;

            if (WorldDb.ReplaceObject(request))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new { message = "changes saved." }));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { message = "Unable to save changes." }));
            }
        }
Esempio n. 5
0
        public HttpResponseMessage Create([FromBody] Content content)
        {
            if (string.IsNullOrWhiteSpace(content?.ContentName))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { message = "ContentName is required" }));
            }

            try
            {
                WorldDb.CreateContent(content);
                return(Request.CreateResponse(HttpStatusCode.OK, new { message = "creation successful." }));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { message = ex.ToString() }));
            }
        }
Esempio n. 6
0
        public HttpResponseMessage Delete(Guid?contentGuid)
        {
            if (contentGuid == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { message = "cannot delete with a null ContentGuid." }));
            }

            try
            {
                WorldDb.DeleteContent(contentGuid.Value);
                return(Request.CreateResponse(HttpStatusCode.OK, new { message = "Delete successful." }));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { message = ex.ToString() }));
            }
        }
Esempio n. 7
0
 public HttpResponseMessage GetAll()
 {
     return(Request.CreateResponse(HttpStatusCode.OK, WorldDb.GetAllContent()));
 }
Esempio n. 8
0
 public HttpResponseMessage Search([FromBody] SearchWeeniesCriteria request)
 {
     return(Request.CreateResponse(HttpStatusCode.OK, WorldDb.SearchWeenies(request)));
 }