示例#1
0
        public async Task <IHttpActionResult> AddLinkedProject(Guid linkedProjectId, Guid workProjectId)
        {
            WorkProject workProject = await db.WorkProjects.Include("Project").FirstOrDefaultAsync(item => item.ProjectId == workProjectId);

            if (workProject == null)
            {
                return(NotFound());
            }

            if (ProjectHelper.HasUpdateAccess(workProject.Project) == false)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "No Access"));
            }

            Project project = await db.Projects.FirstOrDefaultAsync(item => item.Id == linkedProjectId);

            if (project == null)
            {
                return(NotFound());
            }
            if (ProjectHelper.HasUpdateAccess(project) == false)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "No Access"));
            }

            var fta = db.FTAProjects.FirstOrDefault(item => item.ProjectId == linkedProjectId);

            if (fta != null)
            {
                if (workProject.FTAProjects.FirstOrDefault(item => item.ProjectId == linkedProjectId) == null)
                {
                    workProject.FTAProjects.Add(fta);
                }
            }
            else
            {
                var fmea = db.FMEAProjects.FirstOrDefault(item => item.ProjectId == linkedProjectId);
                if (fmea != null)
                {
                    if (workProject.FMEAProjects.FirstOrDefault(item => item.ProjectId == linkedProjectId) == null)
                    {
                        workProject.FMEAProjects.Add(fmea);
                    }
                }
            }

            db.SaveChanges();

            var model = new WorkProjectViewModel(workProject, db);
            ProjectFilesController pfc = new ProjectFilesController();
            var obj = (OkNegotiatedContentResult <ProjectFolderViewModel>)pfc.GetProjectFiles(workProjectId, "Root", System.IO.SearchOption.AllDirectories).Result;

            model.ProjectFiles = obj.Content;
            return(Ok(model));
        }
示例#2
0
        public async Task <IHttpActionResult> GetWorkProject(Guid projectId)
        {
            WorkProject workProject = await db.WorkProjects.Include("Project").FirstOrDefaultAsync(item => item.ProjectId == projectId);

            if (workProject == null)
            {
                return(NotFound());
            }

            if (ProjectHelper.HasReadAccess(workProject.Project) == false)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "No Access"));
            }
            var model = new WorkProjectViewModel(workProject, db);
            ProjectFilesController pfc = new ProjectFilesController();
            var obj = (OkNegotiatedContentResult <ProjectFolderViewModel>)pfc.GetProjectFiles(projectId, "Root", System.IO.SearchOption.AllDirectories).Result;

            model.ProjectFiles = obj.Content;
            return(Ok(model));
        }