private AccidentType GetAccidentTypeForUpdateRequest(UpdateAccidentRecordAccidentDetailsRequest request)
 {
     AccidentType accidentType = null;
     if (request.AccidentTypeId != null)
     {
         accidentType = _accidentTypeRepository.GetById(request.AccidentTypeId.Value);
     }
     return accidentType;
 }
 private CauseOfAccident GetAccidentCauseForUpdateRequest(UpdateAccidentRecordAccidentDetailsRequest request)
 {
     CauseOfAccident accidentCause = null;
     if (request.AccidentCauseId.HasValue)
     {
         accidentCause = _causeOfAccidentRepository.GetById(request.AccidentCauseId.Value);
     }
     return accidentCause;
 }
 private Employee GetFitFirstAiderForUpdateRequest(UpdateAccidentRecordAccidentDetailsRequest request)
 {
     Employee firstAider = null;
     if (request.FirstAiderEmployeeId.HasValue && request.FirstAiderEmployeeId != Guid.Empty && request.FirstAidAdministered)
     {
         firstAider = _employeeRepository.GetByIdAndCompanyId(request.FirstAiderEmployeeId.Value, request.CompanyId);
     }
     return firstAider;
 }
 private Site GetSiteForUpdateRequest(UpdateAccidentRecordAccidentDetailsRequest request)
 {
     Site site = null;
     if (request.SiteId.HasValue)
     {
         site = _siteRepository.GetByIdAndCompanyId(request.SiteId.Value, request.CompanyId);
     }
     return site;
 }
        public void UpdateAccidentRecordAccidentDetails(UpdateAccidentRecordAccidentDetailsRequest request)
        {
            _log.Add(request);

            var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId);
            var accidentRecord = _accidentRecordRepository.GetByIdAndCompanyId(request.AccidentRecordId, request.CompanyId);

            var accidentType = GetAccidentTypeForUpdateRequest(request);
            var accidentCause = GetAccidentCauseForUpdateRequest(request);
            var site = GetSiteForUpdateRequest(request);
            var firstAider = GetFitFirstAiderForUpdateRequest(request);

            accidentRecord.UpdateAccidentDetails(
                request.DateOfAccident,
                site,
                request.OffSiteName,
                request.Location,
                accidentType,
                request.OtherAccidentType,
                accidentCause,
                request.OtherAccidentCause,
                firstAider,
                request.FirstAidAdministered ? request.NonEmployeeFirstAiderName : string.Empty,
                request.FirstAidAdministered ? request.DetailsOfFirstAid : string.Empty,
                user
                );

            _accidentRecordRepository.Save(accidentRecord);

        }