예제 #1
0
 public RunsValidator(
     IBRSConfigurationTemplateRepository brsConfigurationTemplateRepository,
     ITenantSettingsRepository tenantSettingsRepository,
     IRunRepository runRepository,
     IScenarioRepository scenarioRepository,
     ISalesAreaRepository salesAreaRepository,
     ICampaignRepository campaignRepository,
     IDemographicRepository demographicRepository,
     IDeliveryCappingGroupRepository deliveryCappingGroupRepository,
     IFeatureManager featureManager,
     IRunTypeRepository runTypeRepository,
     IAnalysisGroupRepository analysisGroupRepository,
     IMapper mapper
     )
 {
     _brsConfigurationTemplateRepository = brsConfigurationTemplateRepository;
     _tenantSettingsRepository           = tenantSettingsRepository;
     _runRepository                  = runRepository;
     _scenarioRepository             = scenarioRepository;
     _salesAreaRepository            = salesAreaRepository;
     _campaignRepository             = campaignRepository;
     _demographicRepository          = demographicRepository;
     _deliveryCappingGroupRepository = deliveryCappingGroupRepository;
     _featureManager                 = featureManager;
     _runTypeRepository              = runTypeRepository;
     _analysisGroupRepository        = analysisGroupRepository;
     _mapper = mapper;
 }
예제 #2
0
 public CampaignsController(
     ICampaignRepository campaignRepository,
     IRecommendationRepository recommendationRepository,
     IDataChangeValidator dataChangeValidator,
     IMapper mapper,
     IDemographicRepository demographicRepository,
     ISalesAreaRepository salesAreaRepository,
     IProductRepository productRepository,
     ICampaignExcelReportGenerator campaignsReportGenerator,
     IReportColumnFormatter reportColumnFormatter,
     IProgrammeRepository programmeRepository,
     IClashRepository clashRepository,
     IProgrammeCategoryHierarchyRepository programmeCategoryRepository,
     IFeatureManager featureManager,
     ICampaignFlattener campaignFlattener,
     ICampaignCleaner campaignCleaner,
     ICampaignPassPrioritiesService campaignPassPrioritiesService)
 {
     _campaignRepository       = campaignRepository;
     _dataChangeValidator      = dataChangeValidator;
     _recommendationRepository = recommendationRepository;
     _mapper = mapper;
     _demographicRepository       = demographicRepository;
     _clashRepository             = clashRepository;
     _salesAreaRepository         = salesAreaRepository;
     _productRepository           = productRepository;
     _campaignsReportGenerator    = campaignsReportGenerator;
     _reportColumnFormatter       = reportColumnFormatter;
     _programmeCategoryRepository = programmeCategoryRepository;
     _featureManager                = featureManager;
     _campaignFlattener             = campaignFlattener;
     _campaignCleaner               = campaignCleaner;
     _programmeRepository           = programmeRepository;
     _campaignPassPrioritiesService = campaignPassPrioritiesService;
 }
 public DemographicDomainModelHandler(IDemographicRepository demographicRepository,
                                      ISqlServerDbContext dbContext, IMapper mapper)
 {
     _demographicRepository =
         demographicRepository ?? throw new ArgumentNullException(nameof(demographicRepository));
     _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
     _mapper    = mapper;
 }
예제 #4
0
 /// <summary>
 /// Demographic controller constructor
 /// </summary>
 /// <param name="demographicRepository"></param>
 /// <param name="dataChangeValidator"></param>
 /// <param name="mapper"></param>
 public DemographicController(
     IDemographicRepository demographicRepository,
     IDataChangeValidator dataChangeValidator,
     IMapper mapper)
 {
     _demographicRepository = demographicRepository;
     _dataChangeValidator   = dataChangeValidator;
     _mapper = mapper;
 }
예제 #5
0
 public CampaignFlattener(
     IProductRepository productRepository,
     IDemographicRepository demographicRepository,
     IClashRepository clashRepository,
     IMapper mapper) : base(mapper)
 {
     _productRepository     = productRepository;
     _demographicRepository = demographicRepository;
     _clashRepository       = clashRepository;
 }
예제 #6
0
 public BulkUniverseCreatedEventHandler(IMapper mapper,
                                        IUniverseRepository universeRepository,
                                        ISalesAreaRepository salesAreaRepository,
                                        IDemographicRepository demographicRepository)
 {
     _mapper                = mapper;
     _universeRepository    = universeRepository;
     _salesAreaRepository   = salesAreaRepository;
     _demographicRepository = demographicRepository;
 }
예제 #7
0
 public UniversesController(IUniverseRepository universeRepository, IDemographicRepository demographicRepository,
                            ISalesAreaRepository salesAreaRepository,
                            IDataChangeValidator dataChangeValidator, IMapper mapper)
 {
     _universeRepository    = universeRepository;
     _demographicRepository = demographicRepository;
     _salesAreaRepository   = salesAreaRepository;
     _dataChangeValidator   = dataChangeValidator;
     _mapper = mapper;
 }
예제 #8
0
 public SalesAreaUpdatedEventHandler(
     ISalesAreaRepository salesAreaRepository,
     IDemographicRepository demographicRepository,
     ISalesAreaDemographicRepository salesAreaDemographicRepository,
     IMapper mapper)
 {
     _salesAreaRepository            = salesAreaRepository;
     _demographicRepository          = demographicRepository;
     _salesAreaDemographicRepository = salesAreaDemographicRepository;
     _mapper = mapper;
 }
 public BulkTotalRatingCreatedEventHandler(
     ITotalRatingRepository totalRatingRepository,
     IDemographicRepository demographicRepository,
     ISalesAreaRepository salesAreaRepository,
     IMapper mapper)
 {
     _totalRatingRepository = totalRatingRepository;
     _demographicRepository = demographicRepository;
     _salesAreaRepository   = salesAreaRepository;
     _mapper = mapper;
 }
예제 #10
0
 public SalesAreasController(
     IDemographicRepository demographicRepository,
     ISalesAreaRepository salesAreaRepository,
     ISalesAreaCleanupDeleteCommand salesAreaCleanupDeleteCommand,
     IMapper mapper)
 {
     _demographicRepository = demographicRepository;
     _salesAreaRepository   = salesAreaRepository;
     _cleanupDeleteCommand  = salesAreaCleanupDeleteCommand;
     _mapper = mapper;
 }
 public BulkSalesAreaCreatedOrUpdatedHandler(
     ISalesAreaRepository salesAreaRepository,
     IDemographicRepository demographicRepository,
     ISalesAreaDemographicRepository salesAreaDemographicRepository,
     IMapper mapper)
 {
     _salesAreaRepository            = salesAreaRepository;
     _demographicRepository          = demographicRepository;
     _salesAreaDemographicRepository = salesAreaDemographicRepository;
     _mapper = mapper;
 }
예제 #12
0
        public static void ValidateDemographics(this IDemographicRepository repository, IReadOnlyCollection <string> demographics)
        {
            if (repository is null)
            {
                throw new ArgumentNullException(nameof(repository));
            }

            if (repository.GetByExternalRef(demographics?.Where(d => !string.IsNullOrEmpty(d)).ToList()).Distinct().Count() != demographics?.Where(d => !string.IsNullOrEmpty(d)).Distinct().Count())
            {
                throw new DataSyncException(DataSyncErrorCode.DemographicNotFound, "Demographic doesn't exist");
            }
        }
예제 #13
0
        /// <summary>
        /// Validate the demographics
        /// </summary>
        /// <param name="values"></param>
        /// <param name="invalidList"></param>
        /// <returns></returns>
        public static bool ValidateDemographics(this IDemographicRepository repository, List <string> values, out List <string> invalidList)
        {
            invalidList = null;
            if (values is null || values.Count == 0 || values.Any(String.IsNullOrWhiteSpace))
            {
                return(false);
            }

            var demographics = (repository ?? throw new ArgumentNullException(nameof(repository))).GetAll().ToList();

            invalidList = values.Except(demographics.Select(d => d.ExternalRef)).ToList();
            return(invalidList != null && !invalidList.Any());
        }
 public BulkStandardDayPartGroupCreatedEventHandler(
     IStandardDayPartGroupRepository standardDayPartGroupRepository,
     IStandardDayPartRepository standardDayPartRepository,
     ISalesAreaRepository salesAreaRepository,
     IDemographicRepository demographicRepository,
     IMapper mapper)
 {
     _standardDayPartGroupRepository = standardDayPartGroupRepository;
     _standardDayPartRepository      = standardDayPartRepository;
     _salesAreaRepository            = salesAreaRepository;
     _demographicRepository          = demographicRepository;
     _mapper = mapper;
 }
예제 #15
0
        public static Demographic CheckDemographicByExternalRef(this IDemographicRepository repository, string externalRef)
        {
            if (repository is null)
            {
                throw new ArgumentNullException(nameof(repository));
            }

            var demographic = repository.GetByExternalRef(externalRef);

            if (demographic == null)
            {
                throw new DataSyncException(DataSyncErrorCode.ExternalReferenceNotFound,
                                            $"Demographic can't be found for ExternalRef: {externalRef}");
            }

            return(demographic);
        }
예제 #16
0
        public OutputImmutableDataSnapshot(RunWithScenarioReference runWithScenarioRef, IRunRepository runRepository,
                                           IScenarioRepository scenarioRepository, IPassRepository passRepository,
                                           ICampaignRepository campaignRepository, IScheduleRepository scheduleRepository,
                                           ISalesAreaRepository salesAreaRepository, IDemographicRepository demographicRepository,
                                           IProgrammeDictionaryRepository programmeDictionaryRepository, ISpotRepository spotRepository,
                                           IMetadataRepository metadataRepository)
        {
            var runStartDate = new Lazy <DateTime>(() => Run.Value.StartDate.Add(Run.Value.StartTime));
            var runEndDate   = new Lazy <DateTime>(() => DateHelper.ConvertBroadcastToStandard(Run.Value.EndDate, Run.Value.EndTime));

            Run                      = new Lazy <Run>(() => runRepository.Find(runWithScenarioRef.RunId));
            Scenario                 = new Lazy <Scenario>(() => scenarioRepository.Get(runWithScenarioRef.ScenarioId), true);
            ScenarioPasses           = new Lazy <IEnumerable <Pass> >(() => passRepository.FindByScenarioId(runWithScenarioRef.ScenarioId), true);
            AllCampaigns             = new Lazy <IEnumerable <Campaign> >(campaignRepository.GetAll, true);
            AllSalesAreas            = new Lazy <IEnumerable <SalesArea> >(salesAreaRepository.GetAll, true);
            AllDemographics          = new Lazy <IEnumerable <Demographic> >(demographicRepository.GetAll, true);
            AllProgrammeDictionaries = new Lazy <IEnumerable <ProgrammeDictionary> >(programmeDictionaryRepository.GetAll, true);
            BreakTypes               = new Lazy <IEnumerable <string> >(() => metadataRepository.GetByKey(MetaDataKeys.BreakTypes).Select(e => (string)e.Value));

            SpotsForRun = new Lazy <IEnumerable <Spot> >(() =>
            {
                var salesAreaPriorities = Run.Value.SalesAreaPriorities.Count == 0
                    ? AllSalesAreas.Value
                    : AllSalesAreas.Value.Where(sa => Run.Value.SalesAreaPriorities.Find(rsa => rsa.SalesArea == sa.Name) != null);

                return(spotRepository.Search(
                           runStartDate.Value,
                           runEndDate.Value,
                           salesAreaPriorities.Select(sa => sa.Name).ToList()
                           ));
            },
                                                         true
                                                         );

            BreaksForRun = new Lazy <IEnumerable <BreakSimple> >(() =>
                                                                 scheduleRepository.GetScheduleSimpleBreaks(
                                                                     AllSalesAreas.Value.Select(c => c.Name).ToList(),
                                                                     runStartDate.Value,
                                                                     runEndDate.Value
                                                                     ),
                                                                 true
                                                                 );
        }
예제 #17
0
 public BulkDemographicDeletedEventHandler(IDemographicRepository demographicRepository)
 {
     _demographicRepository = demographicRepository;
 }
예제 #18
0
 public DemographicResultChecker(ITestDataImporter dataImporter, IDemographicRepository demographicsRepository) : base(dataImporter)
 {
     _demographicsRepository = demographicsRepository;
 }
예제 #19
0
 public DemographicUpdatedEventHandler(IDemographicRepository demographicsRepository)
 {
     _demographicsRepository = demographicsRepository;
 }
 public BulkDemographicCreatedOrUpdatedEventHandler(IDemographicRepository demographicsRepository, IMapper mapper)
 {
     _mapper = mapper;
     _demographicsRepository = demographicsRepository;
 }