public async Task <GetProjectDTO <ProjectEditViewModel> > CreateNewProjectAsync(string portfolio)
        {
            var context = ServiceContext.PortfolioContext;
            var config  = await portfolioService.GetConfigAsync(portfolio);

            ServiceContext.AssertPermission(config.Portfolio);
            var reservation = await portfolioService.GetProjectReservationAsync(config);

            await context.SaveChangesAsync();

            var newProject = new Project()
            {
                Reservation = reservation
            };

            ProjectEditViewModel newProjectModel = ProjectModelFactory.GetProjectEditModel(newProject);

            var result = new GetProjectDTO <ProjectEditViewModel>()
            {
                Config  = PortfolioMapper.GetProjectLabelConfigModel(config, PortfolioFieldFlags.Create),
                Options = await portfolioService.GetNewProjectOptionsAsync(config),
                Project = newProjectModel
            };

            return(result);
        }
        public void TestProjectPutModelConstruction()
        {
            // Arrange
            var values = new Dictionary <string, string>
            {
                { "name", ProjectName },
                { "description", ProjectDescription },
                { "data", DataName },
                { "dataUri", DataUri },
                { "video", VideoName },
                { "videoUri", VideoUri },
                { "public", Public }
            };

            // Act
            ProjectPutModel result = ProjectModelFactory.CreatePutModel(values);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ProjectPutModel));
            Assert.AreEqual(result.Name, ProjectName);
            Assert.AreEqual(result.Description, ProjectDescription);
            Assert.AreEqual(result.Data, DataName);
            Assert.AreEqual(result.DataUri, DataUri);
            Assert.AreEqual(result.Video, VideoName);
            Assert.AreEqual(result.VideoUri, VideoUri);
            Assert.AreEqual(result.Public, Public);
        }
Exemplo n.º 3
0
        public IActionResult Index()
        {
            // Non-generic tree
            Models.Project.ProjectModelFactory fac = new ProjectModelFactory(this.m_repo);
            Models.Project.ProjectModel        pm  = fac.Create(null);

            return(View(pm));
        } // End Action Index
Exemplo n.º 4
0
        public IActionResult Get(int page = 0, int size = 25)
        {
            IEnumerable <Project> data = new ProjectModelFactory().LoadAll(this.Storage, page, size)?.Projects;
            int count = data.Count();

            return(Ok(new
            {
                success = true,
                data,
                count,
                totalPage = ((int)count / size) + 1
            }));
        }
        public void NewProjectMap()
        {
            PortfolioMapper.Configure();
            var newProject = new Project()
            {
                Reservation = new ProjectReservation()
                {
                    ProjectId = "TEST123"
                }
            };

            var model = ProjectModelFactory.GetProjectEditModel(newProject);

            Assert.IsNotNull(model);

            var minYear = DateTime.Now.Year - PortfolioSettings.ProjectDateMinYearOffset;
            var maxYear = DateTime.Now.Year + PortfolioSettings.ProjectDateMaxYearOffset;

            Assert.AreEqual(minYear, model.MinProjectYear);
            Assert.AreEqual(maxYear, model.MaxProjectYear);
        }
 public EmployeeController()
 {
     _employeeModelFactory = new EmployeeModelFactory();
     _projectModelFactory  = new ProjectModelFactory();
 }
        private async Task <GetProjectDTO <T> > GetProject <T>(string projectId,
                                                               bool includeOptions,
                                                               bool includeHistory,
                                                               bool includeLastUpdate,
                                                               bool includeConfig,
                                                               PortfolioFieldFlags flags             = PortfolioFieldFlags.Read,
                                                               Action <Portfolio> permissionCallback = null)
            where T : ProjectModel, new()
        {
            string            portfolio;
            GetProjectDTO <T> result;


            var context     = ServiceContext.PortfolioContext;
            var reservation = await context.ProjectReservations
                              .SingleOrDefaultAsync(r => r.ProjectId == projectId);

            if (reservation == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            var query = (from p in context.Projects
                         .IncludeProject()
                         .IncludeLabelConfigs() // Need label configs so can map project data fields
                         where p.ProjectReservation_Id == reservation.Id
                         select p);

            if (includeHistory || includeLastUpdate)
            {
                query = query.IncludeUpdates();
            }

            var project = await query.SingleOrDefaultAsync();

            if (project == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            if (permissionCallback != null)
            {
                permissionCallback(project.Reservation.Portfolio);
            }
            else
            {
                ServiceContext.AssertPermission(project.Reservation.Portfolio);
            }

            portfolio = project.Reservation.Portfolio.ViewKey;

            // Build the result
            result = new GetProjectDTO <T>()
            {
                Project = ProjectModelFactory.GetProjectModel <T>(project, includeHistory, includeLastUpdate)
            };

            if (includeConfig)
            {
                var userIsFSA = ServiceContext.UserHasFSAClaim();
                result.Config = PortfolioMapper.GetProjectLabelConfigModel(project.Reservation.Portfolio.Configuration, flags: flags, fsaOnly: !userIsFSA);
            }
            if (includeOptions)
            {
                var config = await portfolioService.GetConfigAsync(portfolio);

                result.Options = await portfolioService.GetNewProjectOptionsAsync(config, result.Project as ProjectEditViewModel);
            }

            return(result);
        }
 public ProjectController()
 {
     _projectModelFactory = new ProjectModelFactory();
 }