예제 #1
0
        public SessionUpdateResponse SessionUpdate(SessionUpdateRequest sessionUpdateRequest)
        {
            // This runs on final entry
            // requires full notes, etc
            var hoursEntryModel   = hoursEntryMappings.FromSessionUpdateRequest(sessionUpdateRequest);
            var apiResponse       = new SessionUpdateResponse();
            var hoursEntryService = new Services.HoursEntryService();

            try
            {
                var hoursEntryResponse = hoursEntryService.SubmitHoursRequest(hoursEntryModel, DomainServices.HoursResolution.EntryApp.ProviderApp);
                apiResponse.Success = hoursEntryResponse.WasProcessed;
                if (!hoursEntryResponse.WasProcessed)
                {
                    log.Warn("Expected hours submission failed with the following: " + string.Join(";", hoursEntryResponse.Messages.Select(x => x.Message).ToArray()));
                }
            }
            catch (Exception e)
            {
                log.Error("Error in Session Update", e);
                apiResponse.Success = false;
            }
            return(apiResponse);
        }
예제 #2
0
        public ValidationResponse Validate(ValidationRequest sessionValidationRequest, bool save)
        {
            // this runs on basic validations
            // does not have notes
            // for manual hours entry, save will be False
            // for session prechecks, save will be true

            var hoursEntryModel = hoursEntryMappings.FromSessionValidationRequest(sessionValidationRequest);
            var apiResponse     = new ValidationResponse();

            HoursProcessor.Models.Response.HoursEntryResponseVM hoursEntryResponse = null;


            var hoursEntryService = new Services.HoursEntryService();

            if (save)
            {
                hoursEntryModel.Status = (int)Domain2.Hours.HoursStatus.PreChecked;
                hoursEntryResponse     = hoursEntryService.SubmitHoursForProviderAppPreCheck(hoursEntryModel);
            }
            else
            {
                hoursEntryResponse = hoursEntryService.SubmitHoursForProviderAppManualEntryInitialValidation(hoursEntryModel);
            }


            var messages = hoursEntryResponse.Messages;

            apiResponse.Errors   = messages.Where(x => x.Severity == HoursProcessor.Models.Response.MessageSeverity.Error).Select(x => x.Message).ToList();
            apiResponse.Warnings = messages.Where(x => x.Severity == HoursProcessor.Models.Response.MessageSeverity.Warning).Select(x => x.Message).ToList();
            apiResponse.Messages = messages.Where(x => x.Severity == HoursProcessor.Models.Response.MessageSeverity.General).Select(x => x.Message).ToList();

            if (hoursEntryResponse.WasProcessed)
            {
                log.Info("Validate Complete, Was Processed with Hours ID: " + hoursEntryResponse.HoursID.Value);
                apiResponse.ServerValidatedSessionID = hoursEntryResponse.HoursID.Value;
            }
            else
            {
                log.Info("Validate Complete, Was Not Processed, therefore Hours ID: 0");
                apiResponse.ServerValidatedSessionID = 0;
            }

            if (_currentUser.Provider.ProviderTypeID == (int)ProviderTypeIDs.BoardCertifiedBehavioralAnalyst)
            {
                throw new NotImplementedException();
            }
            else
            {
                // Aides only have one required not for now...
                apiResponse.NoteQuestions = new List <NoteQuestion>
                {
                    new NoteQuestion()
                    {
                        NoteQuestionID = 0,
                        Question       = "Please enter your session notes"
                    }
                };
            }

            return(apiResponse);
        }