public async Task <IActionResult> CaseSearch() { var bookingInfo = _session.CoaBookingInfo; if (bookingInfo == null) { return(View(new CoaCaseSearchViewModel { CaseNumber = "CA" })); } var model = new CoaCaseSearchViewModel { CaseId = bookingInfo.CaseId, HearingTypeId = bookingInfo.HearingTypeId, CaseNumber = string.IsNullOrWhiteSpace(bookingInfo.CaseNumber) ? "CA" : bookingInfo.CaseNumber, CertificateOfReadiness = bookingInfo.CertificateOfReadiness, IsFullDay = bookingInfo.IsFullDay, DateIsAgreed = bookingInfo.DateIsAgreed, HearingTypeName = bookingInfo.HearingTypeName, CaseType = bookingInfo.CaseType, //LowerCourtOrder = bookingInfo.LowerCourtOrder, SelectedDate = bookingInfo.SelectedDate, IsValidCaseNumber = !string.IsNullOrEmpty(bookingInfo.CaseNumber), CaseList = bookingInfo.CaseList, SelectedCases = bookingInfo.SelectedCases }; if (model.Step2Complete) { model.Results = await _coaBookingService.GetAvailableDates(model.IsFullDay ?? false); } return(View(model)); }
/// <summary> /// Search for available times /// </summary> public async Task <CoaCaseSearchViewModel> GetSearchResults(CoaCaseSearchViewModel model) { var retval = model; bool invalidCaseNumberFormat = false; COACaseList caseNumberResult = new COACaseList(); //search the current case number try { caseNumberResult = await _client.CoACaseNumberValidAsync(model.CaseNumber); } catch (FaultException ex) { if (ex.Message.ToLower().Contains("string was not in a correct format")) { invalidCaseNumberFormat = true; } } if (invalidCaseNumberFormat || caseNumberResult.CaseType.ToLower() == "not found") { //case could not be found retval.IsValidCaseNumber = false; //empty result set retval.Results = new Dictionary <DateTime, List <DateTime> >(); //retval.CaseId = 0; } else { //case ID int caseId = caseNumberResult.CaseList[0].CaseId; retval.CaseId = caseId; //case type string caseType = caseNumberResult.CaseType; retval.CaseType = caseType; //valid case number retval.IsValidCaseNumber = true; retval.CaseList = caseNumberResult.CaseList; if (caseType == CoaCaseType.Civil) { retval.HearingTypeId = 24; } else if (caseType == CoaCaseType.Criminal) { retval.HearingTypeId = model.HearingTypeId; } if (model.Step2Complete) { retval.HearingTypeName = CoaHearingType .GetHearingTypes() .FirstOrDefault(h => h.HearingTypeId == model.HearingTypeId)? .Description ?? ""; } var bookingInfo = new CoaSessionBookingInfo { CaseId = caseId, CaseNumber = model.CaseNumber.ToUpper().Trim(), CaseType = caseType, CertificateOfReadiness = model.CertificateOfReadiness, DateIsAgreed = model.DateIsAgreed, //LowerCourtOrder = model.LowerCourtOrder, IsFullDay = model.IsFullDay, HearingTypeName = retval.HearingTypeName, SelectedDate = model.SelectedDate, CaseList = retval.CaseList, SelectedCases = model.SelectedCases, }; if (model.HearingTypeId != null) { bookingInfo.HearingTypeId = model.HearingTypeId.Value; } _session.CoaBookingInfo = bookingInfo; } return(retval); }
public async Task <IActionResult> CaseSearch(CoaCaseSearchViewModel model) { if (!model.Step1Complete) { if ((model.CaseNumber ?? "CA").ToUpper().Trim() == "CA") { ModelState.AddModelError("CaseNumber", "Please provide a court file number."); } } if (model.Step1Complete) { if (model.CaseType == CoaCaseType.Civil) { if (model.CertificateOfReadiness == null) { ModelState.AddModelError("CertificateOfReadiness", "Please answer this question."); } } else if (model.CaseType == CoaCaseType.Criminal) { //if (model.LowerCourtOrder == null) //{ // ModelState.AddModelError("LowerCourtOrder", "Please answer this question."); //} if (model.HearingTypeId == null) { ModelState.AddModelError("HearingTypeId", "Please select a hearing type."); } } if (model.DateIsAgreed == null) { ModelState.AddModelError("DateIsAgreed", "Please answer this question."); } if (model.IsFullDay == null) { ModelState.AddModelError("IsFullDay", "Please choose the length of time required for your Hearing."); } } if (ModelState.IsValid) { model = await _coaBookingService.GetSearchResults(model); } if (!ModelState.IsValid || model.CaseId == 0) { return(View(model)); } //test if the user selected a time-slot that is available if (model.SelectedDate != null && !model.TimeSlotExpired) //go to confirmation screen { return(new RedirectResult("/scjob/booking/coa/CaseConfirm")); } return(new RedirectResult("/scjob/booking/coa/CaseSearch")); }