public ActionResult ServiceArea(AppraiserUserServiceAreaViewModel serviceAreaModel, NotRequiredAddressViewModel serviceAreaAddress, string nextStep, int? userId = null) { if (serviceAreaModel.EditUserId == 0) { serviceAreaModel.EditUserId = userId.HasValue ? userId.Value : 0; } if (serviceAreaModel.ServiceAreaCenterpoint == 0) { return RedirectToStep(nextStep, serviceAreaModel.EditUserId, serviceAreaModel.IsOwnPage); } if (ModelState.IsValid) { if (serviceAreaAddress != null) { serviceAreaModel.ServiceAreaAddress = serviceAreaAddress; } serviceAreaModel.IsAddressReadOnly = SafeConvert.ToBool(Session[SiteConstants.SessionConstants.AppraiserServiceAreaIsReadonly]) ?? true; var validateAddress = _appraiserUserService.GetGeocodingAddress(serviceAreaModel, SecurityContext.CurrentUser.Email); var validateAddressArg = new ValidateAddressArg { City = validateAddress.City, State = validateAddress.State, Street = validateAddress.Street, ZIP = validateAddress.ZIP }; var geocodingValidationResult = _geocodingValidation.ValidateAddress(validateAddressArg); if (!geocodingValidationResult.IsValid) { ViewBag.GeocodingErrorMessage = Constants.ErrorMessages.GeocodingVerificationError; return GetServiceAreaView(serviceAreaModel, serviceAreaModel.EditUserId); } _appraiserUserService.SaveAppraiserServiceArea(serviceAreaModel, User.Identity.Name); CommitProviderInstance.Commit(); return RedirectToStep(nextStep, serviceAreaModel.EditUserId, serviceAreaModel.IsOwnPage); } TempData[_appraiserServiceAreaKey] = serviceAreaModel; return RedirectToStep(NameHelper.AppraiserProfile.ServiceArea, serviceAreaModel.EditUserId, serviceAreaModel.IsOwnPage); }
public ActionResult ServiceArea(AppraiserUserServiceAreaViewModel serviceAreaModel, NotRequiredAddressViewModel serviceAreaAddress, int? nextStep, bool? isNextBanking = false, bool? isSubmit = null) { if ((nextStep ?? (int)TabIndex.ServiceArea) <= (int)TabIndex.ServiceArea || ModelState.IsValid) { if (serviceAreaAddress != null) { serviceAreaModel.ServiceAreaAddress = serviceAreaAddress; } if ((nextStep ?? (int)TabIndex.ServiceArea) == (int)TabIndex.Banking) { serviceAreaModel.IsAddressReadOnly = SafeConvert.ToBool(Session[SiteConstants.SessionConstants.AppraiserServiceAreaIsReadonly]) ?? true; var validateAddress = _appraiserUserService.GetGeocodingAddress(serviceAreaModel, SecurityContext.CurrentUser.Email); var validateAddressArg = new ValidateAddressArg { City = validateAddress.City, State = validateAddress.State, Street = validateAddress.Street, ZIP = validateAddress.ZIP }; var geocodingValidationResult = _geocodingValidation.ValidateAddress(validateAddressArg); if (!geocodingValidationResult.IsValid) { ViewBag.GeocodingErrorMessage = Constants.ErrorMessages.GeocodingVerificationError; return GetServiceAreaView(serviceAreaModel); } _appraiserUserService.SaveAppraiserServiceArea(serviceAreaModel, User.Identity.Name); SaveLastCompletedStep(TabIndex.ServiceArea, nextStep); CommitProviderInstance.Commit(); } if (isNextBanking ?? false) { TempData["ShowPrebankingPopup"] = true; ViewBag.PreBankingAction = NameHelper.AppraiserWizard.Banking; ViewBag.PreBankingController = NameHelper.AppraiserWizard.Controller; //adding test order for current appraiser var order = _testOrderManager.CreateTestOrderForCurrentAppraiser(); CommitProviderInstance.Commit(); if (order != null) { _taskManager.GenerateLOEDocument(order.Id, base.SecurityContext.CurrentUser.Id); } return RedirectToStep(TabIndex.ServiceArea); } if (isSubmit ?? false) { TempData["ShowProceedPopup"] = true; TempData[_appraiserServiceAreaKey] = serviceAreaModel; } else if (!nextStep.HasValue || nextStep.Value == (int)TabIndex.ServiceArea) { TempData["SaveDraft"] = true; } CommitProviderInstance.Commit(); return RedirectToStep(SafeConvert.ToEnum<TabIndex>(nextStep) ?? TabIndex.ServiceArea); } TempData[_appraiserServiceAreaKey] = serviceAreaModel; return RedirectToStep(TabIndex.ServiceArea); }