public BRSIndicatorManager( IBRSConfigurationTemplateRepository brsConfigurationTemplateRepository, IKPIPriorityRepository kpiPriorityRepository, IScenarioResultRepository scenarioResultRepository, IBRSCalculator brsCalculator, IAuditEventRepository auditEventRepository) { _brsConfigurationTemplateRepository = brsConfigurationTemplateRepository; _kpiPriorityRepository = kpiPriorityRepository; _scenarioResultRepository = scenarioResultRepository; _brsCalculator = brsCalculator; _auditEventRepository = auditEventRepository; }
public CreateOrUpdateBRSConfigurationTemplateValidation(IKPIPriorityRepository kpiPriorityRepository, IBRSConfigurationTemplateRepository brsConfigurationTemplateRepository) { _kpiPriorityRepostitory = kpiPriorityRepository; _brsConfigurationTemplateRepository = brsConfigurationTemplateRepository; RuleFor(x => x).Must(model => { var existsItem = _brsConfigurationTemplateRepository.GetByName(model.Name); return(existsItem == null || existsItem.Id == model.Id); }).WithMessage("Duplicated template name"); RuleFor(p => p.Name).NotEmpty().WithMessage("Name is missing"); RuleFor(p => p.KPIConfigurations).Custom((kpiConfigurations, context) => { if (IsEmpty(kpiConfigurations)) { context.AddFailure("KPIConfigurations are missing"); return; } if (!IsValidKPINames(kpiConfigurations)) { context.AddFailure($"Expected list of configurations for kpis: {string.Join($",{Environment.NewLine}", BRSHelper.KPIs)}"); } var allKpiPriorities = _kpiPriorityRepostitory.GetAll(); var excludePriorityId = allKpiPriorities.First(x => x.WeightingFactor == 0).Id; var existsPriorities = allKpiPriorities.Select(x => x.Id); var inputPriorities = kpiConfigurations.Select(x => x.PriorityId).ToList(); var isAllPrioritiesExists = !inputPriorities.Except(existsPriorities).Any(); if (!isAllPrioritiesExists) { context.AddFailure("Invalid kpi priorities"); } var isNotAllPrioritiesExclude = inputPriorities.Any(id => id != excludePriorityId); if (!isNotAllPrioritiesExclude) { context.AddFailure("All kpi configurations are excluded"); } }); }
public KPIPrioritiesController(IKPIPriorityRepository repository) { _repository = repository; }
public KPIPriorityDomainModelHandler(IKPIPriorityRepository kpiPriorityRepository, ISqlServerTenantDbContext dbContext, IMapper mapper) { _repository = kpiPriorityRepository ?? throw new ArgumentNullException(nameof(kpiPriorityRepository)); _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); _mapper = mapper; }