Example #1
0
 protected TimesheetEventHandler(IInitEfficiencyRunner initEfficiencyRunner, ICacheRepositoryFactory <ITransactionCacheRepository> transactionCacheRepositoryFactory,
                                 ICacheRepositoryFactory <IEmployeeEfficiencyCacheRepository> efficiencyCacheRepositoryFactory, IDataCacheProvider <EfficiencyTimesheetCache> timesheetCacheProvider,
                                 ILiveEfficiencyEngine liveEfficiencyEngine)
 {
     _initEfficiencyRunner = initEfficiencyRunner;
     _transactionCacheRepositoryFactory = transactionCacheRepositoryFactory;
     _efficiencyCacheRepositoryFactory  = efficiencyCacheRepositoryFactory;
     _timesheetCacheProvider            = timesheetCacheProvider;
     _liveEfficiencyEngine = liveEfficiencyEngine;
 }
 public EfficiencyShiftProvider(
     IDataCacheProvider <EfficiencyTimesheetCache> timesheetCacheProvider,
     IEmployeeService employeeService,
     ISiteContextProvider siteContextProvider,
     ICacheRepositoryFactory <ITransactionCacheRepository> transactionCacheRepositoryFactory,
     ICachedLookupService cachedLookupService)
 {
     _employeeService                   = employeeService;
     _timesheetCacheProvider            = timesheetCacheProvider;
     _siteContextProvider               = siteContextProvider;
     _transactionCacheRepositoryFactory = transactionCacheRepositoryFactory;
     _cachedLookupService               = cachedLookupService;
 }
Example #3
0
        public static void ComputeAndUpdateCacheForAllSites(
            ICacheRepositoryFactory <ITransactionCacheRepository> transactionCacheRepositoryFactory,
            IDataCacheProvider <EfficiencyTimesheetCache> timesheetCacheProvider,
            IEmployeeEfficiencyCacheRepository liveEfficiencyCache,
            ILiveEfficiencyEngine liveEfficiencyEngine,
            DateTime start,
            DateTime end)
        {
            List <SiteEmployeeCode> siteEmployeeCodes = new List <SiteEmployeeCode>();
            var transactionCache     = transactionCacheRepositoryFactory.GetCurrent();
            var transactionSiteCodes = transactionCache.GetSiteCodes();

            foreach (var siteCode in transactionSiteCodes)
            {
                siteEmployeeCodes.AddRange(transactionCache.GetTransactionSiteEmployeeCodes(siteCode)
                                           .Select(x => new SiteEmployeeCode {
                    SiteCode = siteCode, EmployeeCode = x
                }));
            }

            List <SiteEmployeeCode> tnaEmployeeCodes = new List <SiteEmployeeCode>();
            var timeSheetCache     = timesheetCacheProvider.GetCurrent();
            var timeSheetSiteCodes = timeSheetCache.GetSiteCodes();

            foreach (var siteCode in timeSheetSiteCodes)
            {
                tnaEmployeeCodes.AddRange(timeSheetCache.GetAll(siteCode)
                                          .GroupBy(r => r.TnaEmployeeCode)
                                          .Select(x => new SiteEmployeeCode {
                    SiteCode = siteCode, EmployeeCode = x.Key
                })
                                          .ToArray());
            }

            liveEfficiencyEngine.ComputeForSiteCodesAndExecute(
                siteEmployeeCodes.GroupBy(x => x.SiteCode).ToDictionary(r => r.Key, r => r.ToArray()),
                tnaEmployeeCodes.GroupBy(x => x.SiteCode).ToDictionary(r => r.Key, r => r.ToArray()),
                start, end, (calculatedEfficiency) => EfficiencyCacheHelper.UpdateLiveEfficiencyCache(calculatedEfficiency, liveEfficiencyCache, start, end, true));
        }
Example #4
0
 public TransactionCacheTransactionProvider(
     ICacheRepositoryFactory <ITransactionCacheRepository> transactionCacheFactory)
 {
     _transactionCacheFactory = transactionCacheFactory;
 }
Example #5
0
 public ConfigurationEngineFactory()
 {
     _storageProviderFactory = new StorageRepositoryFactory();
     _cacheManagerFactory    = new CacheRepositoryFactory();
 }