Ejemplo n.º 1
0
 public WorkdayManagementRepository(IWorkdayPerformanceRepository workdayPerformanceRepository, IDoorsManager doorsManager, IDepletedDoorRepository depletedDoorRepository,
                                    IDoorsRepository doorsRepository)
 {
     _workdayPerformanceRepository = workdayPerformanceRepository;
     _doorsManager           = doorsManager;
     _depletedDoorRepository = depletedDoorRepository;
     _doorsRepository        = doorsRepository;
 }
 public WorkdayManagementController(IWorkdayManagementRepository workdayManagementRepository, IDailyWorkSummary dailyWorkSummary,
                                    IWorkdayPerformanceRepository workdayPerformanceRepository, IDepletedDoorRepository depletedDoorRepository)
 {
     _workdayManagementRepository  = workdayManagementRepository;
     _dailyWorkSummary             = dailyWorkSummary;
     _workdayPerformanceRepository = workdayPerformanceRepository;
     _depletedDoorRepository       = depletedDoorRepository;
 }
        private void LoadDaylyWork(Guid intimidatorId, IWorkdayPerformanceRepository workdayPerformanceRepository)
        {
            var daylyWork = workdayPerformanceRepository.GetDaylyWork(intimidatorId);

            if (daylyWork != null)
            {
                try
                {
                    _loadDaylyWorkSemaphore.Wait();

                    List <WorkDayPerformance> workDayPerformance;
                    if (_cache.TryGetValue(intimidatorId, out workDayPerformance))
                    {
                        _cache.Remove(intimidatorId);
                    }
                    _cache.Set(intimidatorId, daylyWork);
                }
                finally
                {
                    _loadDaylyWorkSemaphore.Release();
                }
            }
        }
        public List <WorkDayPerformance> GetDailyWork(Guid intimidatorId, DateTime fromDateTime, DateTime toDateTime, int minEnergyAmount, int maxEnergyAmount, IWorkdayPerformanceRepository workdayPerformanceRepository)
        {
            List <WorkDayPerformance> workDayPerformanceList = null;

            if (!_cache.TryGetValue(intimidatorId, out workDayPerformanceList))
            {
                LoadDaylyWork(intimidatorId, workdayPerformanceRepository);
                _cache.TryGetValue(intimidatorId, out workDayPerformanceList);
            }

            if (workDayPerformanceList == null)
            {
                return(null);
            }

            return(workDayPerformanceList.Where(p => p.IntimidatorId == intimidatorId && p.WorkDayDate >= fromDateTime && p.WorkDayDate <= toDateTime &&
                                                p.ActualEnergyAmount >= minEnergyAmount && p.ActualEnergyAmount <= maxEnergyAmount).ToList());
        }
 public void ReloadDaylyWork(Guid intimidatorId, IWorkdayPerformanceRepository workdayPerformanceRepository)
 {
     LoadDaylyWork(intimidatorId, workdayPerformanceRepository);
 }