Пример #1
0
        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);
                }
            }
        }