public void UpdateInjuredPerson(UpdateInjuredPersonRequest request)
        {
            _log.Add(request);
            var user = _userForAuditingRepository.GetByIdAndCompanyId(request.CurrentUserId, request.CompanyId);

            //TODO: get by company id and userid
            //TODO: handle accident record being null
            var accidentRecord = _accidentRecordRepository.GetById(request.AccidentRecordId);

            var country = request.NonEmployeeInjuredCountry.HasValue
                              ? _countriesRepository.GetById(request.NonEmployeeInjuredCountry.Value)
                              : null;

            var employee = request.EmployeeInjuredId.HasValue
                               ? _employeeRepository.GetByIdAndCompanyId(request.EmployeeInjuredId.Value, request.CompanyId)
                               : null;

            var personInvolvedDescription = request.PersonInvolved != PersonInvolvedEnum.Other ? null : request.PersonInvolvedOtherDescriptionId != 9
                ? request.PersonInvolvedOtherDescription
                : request.PersonInvolvedOtherDescriptionOther;

            var personInvovedDescriptionId = request.PersonInvolved != PersonInvolvedEnum.Other
                ? null
                : request.PersonInvolvedOtherDescriptionId;

            accidentRecord.UpdateInjuredPerson(request.PersonInvolved,
                                               personInvolvedDescription,
                                               employee, 
                                               request.NonEmployeeInjuredForename,
                                               request.NonEmployeeInjuredSurname,
                                               request.NonEmployeeInjuredAddress1,
                                               request.NonEmployeeInjuredAddress2,
                                               request.NonEmployeeInjuredAddress3,
                                               request.NonEmployeeInjuredCountyState,
                                               country,
                                               request.NonEmployeeInjuredPostcode,
                                               request.NonEmployeeInjuredContactNumber,
                                               request.NonEmployeeInjuredOccupation,
                                               personInvovedDescriptionId,
                                               user);

            _accidentRecordRepository.SaveOrUpdate(accidentRecord);            
        }
        private void UpdateInjuredPerson(InjuredPersonViewModel model)
        {
            UpdateInjuredPersonRequest request = new UpdateInjuredPersonRequest()
            {
                AccidentRecordId = model.AccidentRecordId,
                CurrentUserId = CurrentUser.UserId,
                CompanyId = CurrentUser.GetUsersCompanyId(),
                PersonInvolved = model.PersonInvolvedType,
                PersonInvolvedOtherDescription = model.PersonInvolvedOtherDescription,
                PersonInvolvedOtherDescriptionId = model.PersonInvolvedOtherDescriptionId,
                PersonInvolvedOtherDescriptionOther = model.PersonInvolvedOtherDescriptionOther,
                EmployeeInjuredId = model.EmployeeId,
                NonEmployeeInjuredForename = model.Forename,
                NonEmployeeInjuredSurname = model.Surname,
                NonEmployeeInjuredAddress1 = model.AddressLine1,
                NonEmployeeInjuredAddress2 = model.AddressLine2,
                NonEmployeeInjuredAddress3 = model.AddressLine3,
                NonEmployeeInjuredCountyState = model.County,
                NonEmployeeInjuredCountry = model.CountryId,
                NonEmployeeInjuredPostcode = model.Postcode,
                NonEmployeeInjuredContactNumber = model.ContactNo,
                NonEmployeeInjuredOccupation = model.Occupation
            };

            _accidentRecordService.UpdateInjuredPerson(request);
        }