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); }
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); }