public string DeleteProjectTag(string value = null, int projectId = -1, string token = null) { if (Request.RequestType.Equals("OPTIONS", StringComparison.InvariantCultureIgnoreCase)) //This is a preflight request { return null; } else { try { int userId; if (token != null) { userId = authenticationEngine.authenticate(token); } else { return AddErrorHeader("An authentication token must be passed in", 2); } if (userId < 0) { return AddErrorHeader("User not authenticated, please log in!", 2); } User user = userManager.GetUser(userId); Project project = projectManager.GetProject(projectId); if (!projectManager.IsUserOwnerOfProject(projectId, user)) { return AddErrorHeader("User not authorized to delete this project", 3); } TagManager tm = new TagManager(); bool result = false; sTag stag = tm.GetSTag(value); if (stag != null) { result = tm.RemoveProjectLink(stag.id, projectId, "s"); } else { fTag ftag = tm.GetFTag(value); if (ftag != null) { result = tm.RemoveProjectLink(ftag.id, projectId, "f"); } else { return AddErrorHeader("Tag does not exist in database", 1); } } if (result == true) { return AddSuccessHeader("Tag Removed from Project: " + projectId , true); } else { return AddErrorHeader("Tag could not be removed from the Project", 1); } } catch (Exception ex) { logAccessor.CreateLog(DateTime.Now, "ProjectController - AddProjectTag", ex.StackTrace); return AddErrorHeader("Something went wrong while removing this Project Tag", 1); } } }