public override CompanyDefaultSaveResponse Execute(SaveCompanyDefaultViewModel viewModel, Guid userId) { // Test there no Risk Assessment Types Applicable if (viewModel.RiskAssessmentTypeApplicable == null || viewModel.RiskAssessmentTypeApplicable.Any() == false) { return CompanyDefaultSaveResponse.CreateValidationFailedResponse("Applicable risk types required"); } var request = new SaveCompanyHazardDefaultRequest(viewModel.CompanyDefaultId, viewModel.CompanyDefaultValue, viewModel.CompanyId, viewModel.RiskAssessmentId, viewModel.RunMatchCheck, viewModel.RiskAssessmentTypeApplicable, userId); if (request.RunMatchCheck) { _guardDefaultExistsRequest = new GuardDefaultExistsRequest(request.Name, request.Id, request.CompanyId); var existResult = CompanyDefaultAlreadyExistGuard.Execute(RunQuery); if (existResult.Exists) { return CompanyDefaultSaveResponse.CompanyDefaultMatches(existResult.MatchingResults); } } var result = CompanyDefaultService.SaveHazard(request); return CompanyDefaultSaveResponse.CreateSavedSuccessfullyResponse(result); }
private IList<HazardType> GetRiskAssessmentHazardTypes(SaveCompanyHazardDefaultRequest request) { IList<HazardType> riskAssessmentHazardTypes = request .RiskAssessmentTypeApplicable .Select( riskAssessmentTypeApplicable => _hazardTypeRepository.LoadById(riskAssessmentTypeApplicable)) .ToList(); return riskAssessmentHazardTypes; }
public long SaveHazard(SaveCompanyHazardDefaultRequest request) { _log.Add(request); try { var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId); var riskAssessmentHazardTypes = GetRiskAssessmentHazardTypes(request); var riskAssessment = request.RiskAssessmentId.HasValue ? _riskAssessmentRepository.GetByIdAndCompanyId(request.RiskAssessmentId.Value, request.CompanyId) : null; Hazard hazard; if (request.Id == 0) { hazard = Hazard.Create( request.Name, request.CompanyId, user, riskAssessmentHazardTypes, riskAssessment ); } else { hazard = _hazardRepository.GetById(request.Id); hazard.Update( request.Name, request.CompanyId, user, riskAssessmentHazardTypes ); } _hazardRepository.SaveOrUpdate(hazard); return hazard.Id; } catch (Exception ex) { _log.Add(ex); throw; } }