示例#1
0
        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));
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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"));
        }