示例#1
0
        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;
            }


        }