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); }
static ProjectDataInboundResolver() { var unmappedToProject = PortfolioMapper.GetUnmappedSourceMembers <ProjectUpdateModel, Project>(PortfolioMapper.projectConfig); var unmappedToUpdate = PortfolioMapper.GetUnmappedSourceMembers <ProjectUpdateModel, ProjectUpdateItem>(PortfolioMapper.projectConfig); unmappedProperties = unmappedToProject.Intersect(unmappedToUpdate).ToDictionary(p => p.Name); }
public void NullableFloatMap() { PortfolioMapper.Configure(); float?f = PortfolioMapper.ExportMapper.Map <float?>(string.Empty); Assert.IsNull(f); }
public void MappingProfilesAreValid() { PortfolioMapper.Configure(); PortfolioMapper.projectConfig.AssertConfigurationIsValid(); PortfolioMapper.configConfig.AssertConfigurationIsValid(); PortfolioMapper.updateConfig.AssertConfigurationIsValid(); PortfolioMapper.exportConfig.AssertConfigurationIsValid(); }
public async Task <IActionResult> Index([FromServices] UserManager <User> userManager) { var _user = await userManager.GetUserAsync(User); IPortfolio p = new Portfolio(_user.secret_accesstoken); PortfolioMapper mapper = p.SeePortfolio(); return(View(mapper)); }
protected void Application_Start() { AppLog.TraceInformation("Portfolio application starting..."); AppLog.Indent(); GlobalConfiguration.Configure(WebApiConfig.Register); GlobalConfiguration.Configuration.MessageHandlers.Add(new ApiKeyMessageHandler()); GlobalConfiguration.Configuration.Filters.Add(new LogExceptionFilterAttribute()); PortfolioMapper.Configure(); AppLog.Unindent(); AppLog.TraceInformation("Portfolio application started."); }
public PortfolioMapper SeePortfolio() { var client = new RestClient("https://paper-api.alpaca.markets/v2/positions"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", $"Bearer {_pToken}"); IRestResponse response = client.Execute(request); var JsonObj_PortfolioData = JsonConvert.DeserializeObject(response.Content); PortfolioMapper mapper = new PortfolioMapper(); mapper.TradingInfo = JsonObj_PortfolioData; return(mapper); }
public async Task <GetProjectQueryDTO> FilterOptionsAsync([FromUri(Name = "portfolio")] string viewKey) { GetProjectQueryDTO result = null; using (var context = new PortfolioContext()) { var config = await portfolioService.GetConfigAsync(viewKey); var customFields = portfolioService.GetCustomFilterLabels(config); result = new GetProjectQueryDTO() { Config = PortfolioMapper.GetProjectLabelConfigModel(config, PortfolioFieldFlags.FilterProject | PortfolioFieldFlags.FilterRequired, customLabels: customFields), Options = await portfolioService.GetNewProjectOptionsAsync(config) }; } return(result); }
private void CriarPortfolio() { Portfolio portfolio = new Portfolio(); Console.WriteLine("Insert cc of Client"); portfolio.cc = Int32.Parse(Console.ReadLine()); Console.WriteLine("Insert name of Portfolio"); portfolio.nome = Console.ReadLine(); PortfolioMapper mapper = new PortfolioMapper(); if (mapper.Create(portfolio) > 0) { Console.WriteLine("SUCCESS"); } else { Console.WriteLine("UNSUCCESS"); } }
private void RemoverPortfolio() { Portfolio portfolio = new Portfolio(); Console.WriteLine("Insert the cc of Client's Portfolio you want to REMOVE"); portfolio.cc = Int32.Parse(Console.ReadLine()); Console.WriteLine("Insert the name Portfolio you want to REMOVE"); portfolio.nome = Console.ReadLine(); PortfolioMapper mapper = new PortfolioMapper(); if (mapper.Delete(portfolio) > 0) { Console.WriteLine("SUCCESS"); } else { Console.WriteLine("UNSUCCESS"); } }
public void MapPortfolioToViewModelOnSuccessReturnsProperties() { //arrange var mean = 1D; var statistic = new Mock <IStatistic>(); statistic.Setup(s => s.Mean).Returns(mean); var frequency = 2D; var histogramDatum = new HistogramDatum { Frequency = frequency }; IList <HistogramDatum> histogram = new[] { histogramDatum }; var successProbability = 3D; IList <double> successProbabilities = new[] { successProbability }; var portfolio = new Mock <IPortfolio>(); portfolio.Setup(p => p.Statistics).Returns(statistic.Object); portfolio.Setup(p => p.Histogram).Returns(histogram); portfolio.Setup(p => p.SuccessProbabilities).Returns(successProbabilities); var statisticsViewModel = new StatisticViewModel { Mean = mean }; var statisticMapper = new Mock <IStatisticMapper>(); statisticMapper.Setup(m => m.MapStatisticToViewModel( It.Is <IStatistic>(s => s.Mean == mean))) .Returns(statisticsViewModel); var mapper = new PortfolioMapper(statisticMapper.Object); //act var result = mapper.MapPortfolioToViewModel(portfolio.Object); //assert Assert.AreEqual(mean, result.Statistics.Mean); Assert.AreEqual(frequency, result.Histogram[0].Frequency); Assert.AreEqual(successProbability, result.SuccessProbabilities[0]); }
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 async Task <GetProjectExportDTO> GetProjectExportDTOAsync(string viewKey) { // Get the data List <int> reservationIds = await getReservationIdsForPortfolio(viewKey); var projects = await getProjectsAsArrayWitUpdatesAsync(reservationIds); var config = await portfolioService.GetConfigAsync(viewKey); // To the mapping GetProjectExportDTO result = new GetProjectExportDTO() { Config = PortfolioMapper.GetProjectLabelConfigModel(config, includedOnly: true), Projects = PortfolioMapper.ExportMapper.Map <IEnumerable <ProjectExportModel> >(projects, opts => { opts.Items[ExportUpdateTextResolver.OnKey] = true; }) }; return(result); }
public void NoLeadSummaryTest() { // Configure test data var l1 = new Person() { Id = 1, ActiveDirectoryDisplayName = "Person1" }; var ph1 = new ProjectPhase() { Id = 1, Name = "Phase1", ViewKey = "phase1", Order = 0 }; var ph2 = new ProjectPhase() { Id = 2, Name = "Phase2", ViewKey = "phase2", Order = 1 }; var ph5 = new ProjectPhase() { Id = 5, Name = "Phase5", ViewKey = "phase5", Order = 2 }; PortfolioConfiguration config = new PortfolioConfiguration() { Phases = new List <ProjectPhase>() { ph1, ph2, ph5 }, Labels = new List <PortfolioLabelConfig>() }; ph1.Configuration = config; ph2.Configuration = config; ph5.Configuration = config; var up1 = new ProjectUpdateItem() { Phase = ph1 }; var up2 = new ProjectUpdateItem() { Phase = ph1 }; Portfolio portfolio = new Portfolio() { Configuration = config, Projects = new List <Project>() { new Project() { ProjectReservation_Id = 1, Name = "Project1", Updates = new List <ProjectUpdateItem>() { up1 }, LatestUpdate = up1 }, new Project() { ProjectReservation_Id = 2, Name = "Project2", Updates = new List <ProjectUpdateItem>() { up2 }, LatestUpdate = up2, Lead = l1, Lead_Id = l1.Id } } }; portfolio.Configuration.Portfolio = portfolio; portfolio.Configuration.CompletedPhase = ph5; var summaryType = PortfolioSummaryModel.ByLead; // Initialise mapping configuration PortfolioMapper.Configure(); // Map the test data var result = PortfolioMapper.ConfigMapper.Map <PortfolioSummaryModel>( portfolio, opt => { opt.Items[nameof(PortfolioConfiguration)] = portfolio.Configuration; opt.Items[PortfolioSummaryResolver.SummaryTypeKey] = summaryType; }); // Check result // result // -- Phases // -- Phases[0] // -- ViewKey: phase1 // -- Count: 2 // -- Phases[1] // -- ViewKey: phase2 // -- Count: 0 // -- Summaries // -- Summaries[0] // -- Name: "None set" // -- PhaseProjects // -- Count: 2 // -- PhaseProjects[0] // -- ViewKey: "phase1" // -- Projects // -- Count: 1 // -- Projects[0] // -- Name: "Project1" // -- PhaseProjects[1] // -- ViewKey: "phase2" // -- Projects // -- Count: 0 // -- Summaries[1] // -- Name: "Person1" // -- PhaseProjects // -- PhaseProjects[0] // -- ViewKey: "phase1" // -- Projects // -- Count: 1 // -- Projects[0] // -- Name: "Project2" // -- PhaseProjects[1] // -- ViewKey: "phase2" // -- Projects // -- Count: 0 var phases = result.Phases.ToList(); Assert.AreEqual(2, phases.Count()); Assert.AreEqual("phase1", phases[0].ViewKey); Assert.AreEqual("phase2", phases[1].ViewKey); Assert.AreEqual(2, phases[0].Count); // Projects in phase 1 Assert.AreEqual(0, phases[1].Count); // This is phase 2 (completed phase is hidden) var summaries = result.Summaries.ToList(); // ... counts Assert.AreEqual(2, summaries.Count()); // ... Summary 0 ("None set") should have 1 project in phase1 Assert.AreEqual(ProjectTeamConstants.NotSetName, summaries[0].Name); Assert.AreEqual(2, summaries[0].PhaseProjects.ToList().Count()); Assert.AreEqual("phase1", summaries[0].PhaseProjects.ToList()[0].ViewKey); Assert.AreEqual(1, summaries[0].PhaseProjects.ToList()[0].Projects.Count()); Assert.AreEqual("Project1", summaries[0].PhaseProjects.ToList()[0].Projects.First().Name); Assert.AreEqual("phase2", summaries[0].PhaseProjects.ToList()[1].ViewKey); Assert.AreEqual(0, summaries[0].PhaseProjects.ToList()[1].Projects.Count()); // ... Summary 1 ("Person1") should have 1 project in phase1 Assert.AreEqual("Person1", summaries[1].Name); Assert.AreEqual(2, summaries[1].PhaseProjects.ToList().Count()); Assert.AreEqual("phase1", summaries[1].PhaseProjects.ToList()[0].ViewKey); Assert.AreEqual(1, summaries[1].PhaseProjects.ToList()[0].Projects.Count()); Assert.AreEqual("Project2", summaries[1].PhaseProjects.ToList()[0].Projects.First().Name); Assert.AreEqual("phase2", summaries[1].PhaseProjects.ToList()[1].ViewKey); Assert.AreEqual(0, summaries[1].PhaseProjects.ToList()[1].Projects.Count()); }
static ProjectFlaggingTests() { PortfolioMapper.Configure(); }
static ProjectDataOutboundMapper() { var unmappedToProject = PortfolioMapper.GetUnmappedDestinationMembers <Project, T>(PortfolioMapper.projectConfig); unmappedProperties = unmappedToProject.ToDictionary(p => p.Name); }
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 PortfolioController(IProjectProvider projectProvider, ProjectMapper projectMapper, PortfolioMapper portfolioMapper) { _projectProvider = projectProvider; _projectMapper = projectMapper; _portfolioMapper = portfolioMapper; }