コード例 #1
0
ファイル: ProjectManager.cs プロジェクト: bcary/Vestn_Backend
        public JsonModels.CompleteProject GetProjectJson(Project project)
        {
            JsonModels.CompleteProject cp = new JsonModels.CompleteProject();
            if (project != null)
            {
                cp.coverPicture = project.coverPicture;
                cp.coverPictureThumbnail = project.coverPictureThumbnail;
                cp.description = project.description;
                cp.artifactOrder = project.projectElementOrder;
                cp.id = project.id;
                cp.title = project.name;
                cp.dateModified = project.dateModified.ToString();
                cp.props = GetProjectProps(project.id);
                if (project.projectElements == null)
                {
                    cp.artifacts = null;
                }
                else if (project.projectElementOrder != null)
                {
                    ReorderEngine re = new ReorderEngine();
                    List<int> IDS = re.stringOrderToList(project.projectElementOrder);
                    int[] ids = IDS.ToArray();

                    cp.artifacts = GetArtifacts(ids);
                    cp.artifactOrder = project.projectElementOrder;
                }
                return cp;
            }
            else
            {
                return null;
            }
        }
コード例 #2
0
        public string AddProject(string token, string name = null, string description = null)
        {
            if (Request.RequestType.Equals("OPTIONS", StringComparison.InvariantCultureIgnoreCase))  //This is a preflight request
            {
                return null;
            }
            else
            {
                try
                {
                    int userId = authenticationEngine.authenticate(token);
                    if (userId < 0)
                    {
                        return AddErrorHeader("You are not authenticated, please log in!", 2);
                    }

                    User user = userManager.GetUser(userId);

                    Project project = projectManager.CreateProject(user, new List<ProjectElement>());

                    project.name = name;
                    project.description = description;
                    project.privacy = "public";
                    project.dateModified = DateTime.Now;
                    projectManager.UpdateProject(project);

                    //refresh the user object with the changes
                    user = userManager.GetUser(userId);
                    //User try2 = userManager.GetUserWithNetworks(userId);
                    JsonModels.CompleteProject response = new JsonModels.CompleteProject();

                    response.title = project.name;
                    response.description = project.description;
                    response.privacy = project.privacy;
                    response.id = project.id;
                    response.artifacts = null;
                    response.projectTags = null;
                    response.artifactOrder = "";
                    string returnVal;
                    try
                    {
                        returnVal = Serialize(response);
                    }
                    catch (Exception exception)
                    {
                        return AddErrorHeader(exception.Message, 1);
                    }
                    activityManager.AddActivity(user.id, "Project", "Added", response.id);
                    aa.CreateAnalytic("Add_Project", DateTime.Now, user.userName);
                    return AddSuccessHeader(returnVal);
                }
                catch (Exception ex)
                {
                    logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString());
                    return AddErrorHeader("Something went wrong while creating this project", 1);
                }
            }
        }
コード例 #3
0
ファイル: ProjectManager.cs プロジェクト: bcary/Vestn_Backend
        public List<JsonModels.CompleteProject> GetCompleteProjects(int[] id, List<string> projectPrivacyPrivledge)
        {
            List<JsonModels.CompleteProject> projects = new List<JsonModels.CompleteProject>();
            ProjectAccessor pa = new ProjectAccessor();
            if (projectPrivacyPrivledge == null)
            {
                projectPrivacyPrivledge = new List<string>();
                projectPrivacyPrivledge.Add("public");
                projectPrivacyPrivledge.Add("network");
                projectPrivacyPrivledge.Add("private");
            }
            foreach (int i in id)
            {
                JsonModels.CompleteProject cp = new JsonModels.CompleteProject();
                ReorderEngine re = new ReorderEngine();
                Project p = pa.GetProject(i);
                if (p != null)
                {
                    if (p.isActive == true && (projectPrivacyPrivledge.Contains(p.privacy) || p.privacy == null))
                    {
                        cp.id = p.id;
                        if (p.name != null)
                        {
                            cp.title = p.name;
                        }
                        else
                        {
                            cp.title = null;
                        }
                        if (p.description != null)
                        {
                            cp.description = p.description;
                        }
                        else
                        {
                            cp.description = null;
                        }
                        cp.projectTags = GetProjectTags(p.id);

                        //we have to reset everyone's project order or when you add a new element this breaks - removes all old elements
                        List<int> peIds = new List<int>();
                        //just reset order if its null - duh!
                        if (p.projectElementOrder == null | p.projectElementOrder == "")
                        {
                            p = resetProjectElementOrder(p);
                            if (p.projectElementOrder != null)
                            {
                                List<int> IDS = re.stringOrderToList(p.projectElementOrder);
                                int[] ids = IDS.ToArray();
                                cp.artifactOrder = p.projectElementOrder;
                                cp.artifacts = GetArtifacts(ids);
                            }
                            else
                            {
                                cp.artifactOrder = null;
                                cp.artifacts = null;
                            }
                        }
                        else //projectElementOrder isn't null
                        {
                            List<int> IDS = re.stringOrderToList(p.projectElementOrder);
                            int[] ids = IDS.ToArray();
                            cp.artifacts = GetArtifacts(ids);
                            cp.artifactOrder = p.projectElementOrder;
                        }
                        if (p.coverPicture != null)
                        {
                            cp.coverPicture = p.coverPicture;
                        }
                        if (p.coverPictureThumbnail != null)
                        {
                            cp.coverPictureThumbnail = p.coverPictureThumbnail;
                        }
                        if (p.dateModified != null)
                        {
                            cp.dateModified = p.dateModified.ToString();
                        }
                        if (p.privacy != null)
                        {
                            cp.privacy = p.privacy;
                        }
                        cp.props = GetProjectProps(p.id);
                        projects.Add(cp);
                    }
                }
            }
            if (projects.Count != 0)
            {
                return projects;
            }
            else
            {
                return null;
            }
        }