Ejemplo n.º 1
0
        public void Process(ProjectHealthRiskThresholdUpdate @event)
        {
            //TODO: Assumes that project and health risk exists. Should be verified in BusinessValidator
            _projects.Update(p => p.Id == @event.ProjectId,
                             Builders <Project> .Update.Set(
                                 p => p.HealthRisks.FirstOrDefault(risk => risk.HealthRiskId == @event.HealthRiskId)
                                 .Threshold, @event.Threshold));

            var project    = _projects.GetOne(p => p.Id == @event.ProjectId);
            var healthRisk = project.HealthRisks.FirstOrDefault(risk => risk.HealthRiskId == @event.HealthRiskId);

            _projectHealthRiskVersions.Append(project.Id, healthRisk, System.DateTimeOffset.UtcNow);
        }
Ejemplo n.º 2
0
        public void Process(ProjectHealthRiskThresholdUpdate @event)
        {
            var project    = _projects.GetById(@event.ProjectId);
            var healthRisk = project.HealthRisks.Single(r => r.HealthRiskId == @event.HealthRiskId);

            healthRisk.Threshold = @event.Threshold;
            //TODO need to be tested
            _projects.Update(project);

            var projectHealthRiskVersion = new ProjectHealthRiskVersion
            {
                ProjectId         = project.Id,
                EffectiveFromTime = DateTimeOffset.UtcNow,
                HealthRisk        = healthRisk
            };

            _projectHealthRiskVersions.Insert(projectHealthRiskVersion);
        }
Ejemplo n.º 3
0
        public void Process(ProjectHealthRiskThresholdUpdate @event)
        {
            var project    = _projects.GetById(@event.ProjectId);
            var healthRisk = project.HealthRisks?.FirstOrDefault(v => v.HealthRiskId == @event.HealthRiskId);

            if (healthRisk == null)
            {
                healthRisk          = new ProjectHealthRisk();
                project.HealthRisks = (project.HealthRisks ?? new ProjectHealthRisk[0]).Union(new[] { healthRisk })
                                      .ToArray();
            }

            healthRisk.HealthRiskId = @event.HealthRiskId;
            healthRisk.Threshold    = @event.Threshold;
            _projects.Save(project);

            _projectHealthRiskVersions.Append(project.Id, healthRisk, System.DateTimeOffset.UtcNow);
        }