public async Task <IActionResult> SubmitCustomerRegistration([FromBody] Models.CustomerRegistrationRequest customerRegistrationRequest) { var result = await _customerRegistrationService.Register(_mapper.Map <CustomerRegistrationRequest>(customerRegistrationRequest)); if (result.IsSuccessful) { return(Ok(new Models.CustomerRegistrationCreated { // ReSharper disable once PossibleInvalidOperationException CustomerId = result.CustomerId.Value })); } return(BadRequest(result.ValidationMessages.Select(vm => _mapper.Map <Models.ValidationMessage>(vm)).ToArray())); }
public async Task SaveCustomerVehicle(SaveCustomerVehicleRequest request, DealerConfigurationResponse dealerConfigResponse) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (dealerConfigResponse == null) { throw new ArgumentNullException(nameof(dealerConfigResponse)); } var customer = MapCustomer(request); var customerVehicle = MapCustomerVehicle(request, customer); var existingCustomer = _customerVehicleDal.GetCustomer(request.CustomerNo, request.RooftopId, request.CommunityId); if (existingCustomer == null) { //register customer if could not find in database // not handlerd if cdk autoline give customer already registered. await _customerRegistrationService.Register(customer, customerVehicle); } var customerId = await _customerVehicleDal.SaveCustomer(customer); customerVehicle.CustomerId = customerId; await _customerVehicleDal.SaveCustomerVehicle(customerVehicle); var communicationMethod = GetCommunicationMethod(dealerConfigResponse.CommunicationMethod); var inviteCommunicationMethod = await _customerInvitationService.Invite(request, dealerConfigResponse, communicationMethod); var invitation = MapInvitation(request, dealerConfigResponse.DealerId, dealerConfigResponse.CommunicationMethod, inviteCommunicationMethod); invitation.CustomerId = customer.Id; await _customerVehicleDal.LogInvitationDetail(invitation); }