}                                                                                                           // all hours for this provider, including hours being entered



        // ------------------------
        // Constructors
        // ------------------------
        public ResolutionService(IEnumerable <Domain2.Hours.Hours> entries, IResolutionServiceRepository repository)
        {
            AssessmentServiceIDs = repository.GetAssessmentIDs();

            // Warning: do not use SaveChanges in the constructor callstack.
            // See class header comments for details.

            ResolveRepository(
                repository,
                entries.Min(x => x.Date),
                entries.Max(x => x.Date));

            var firstEntry = entries.First();
            var caseID     = firstEntry.CaseID;
            var providerID = firstEntry.Provider.ID;

            Provider        = _repository.GetProvider(providerID);
            ProposedEntries = entries.ToList();

            // preload core provider/case hours to help prevent deadlocks
            GetAllProposedProviderHours();
            AllProposedCaseHours(caseID);

            // preload ssg case hours
            foreach (var entry in entries)
            {
                if (entry.SSGCaseIDs != null && entry.SSGCaseIDs.Length > 0)
                {
                    for (int i = 0; i < entry.SSGCaseIDs.Length; i++)
                    {
                        AllProposedCaseHours(entry.SSGCaseIDs[i]);
                    }
                }
            }
        }
 public AuthorizationResolution(
     IResolutionServiceRepository resolutionServiceRepository,
     HoursResolutionLoggingService hoursResolutionService
     )
 {
     ResolutionServiceRepository = resolutionServiceRepository;
     LoggingService = hoursResolutionService;
 }
        // ------------------------
        // Private Methods
        // ------------------------


        private void ResolveRepository(IResolutionServiceRepository repository, DateTime dateRangeLow, DateTime dateRangeHigh)
        {
            if (repository == null)
            {
                _repository = new ResolutionServiceRepository(new Data.V2.CoreContext());
            }
            else
            {
                _repository = repository;
            }

            // set the effective repository +/- one month from proposed hours range
            _repository.DateRangeLow  = new DateTime(dateRangeLow.Year, dateRangeLow.Month, 1).AddMonths(-1);
            _repository.DateRangeHigh = new DateTime(dateRangeHigh.Year, dateRangeHigh.Month, 1).AddMonths(1);
        }
 public CoreValidations(IResolutionService resolutionService, IResolutionServiceRepository repository)
 {
     _resolutionService   = resolutionService;
     _repository          = repository;
     _hoursNotesValidator = new HoursNotesValidator();
 }
Exemple #5
0
 public SSGResolution(IResolutionService resolutionService, IResolutionServiceRepository repository)
 {
     _resolutionService = resolutionService;
     _repository        = repository;
 }