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);
        }
 public GuardDefaultExistsReponse Execute(GuardDefaultExistsRequest request)
 {
     var nonEmployees = _nonEmployeeRepository.GetAllByNameSearch(request.Name, request.ExcludeId, request.CompanyId);
     if (!nonEmployees.Any())
     {
         return GuardDefaultExistsReponse.NoMatches;
     }
         
     var matches = nonEmployees
                             .OrderBy(x => x.Name)
                             .Select(nonEmployee => string.Format("{0}, {1}, {2}", nonEmployee.Name, nonEmployee.Company, nonEmployee.Position))
                             .ToList();
     return GuardDefaultExistsReponse.MatchesExist(matches);
 }
        public CompanyDefaultSaveResponse Execute(SaveNonEmployeeRequest request)
        {
            if (request.RunMatchCheck)
            {
                var nonEmployeeDefaultAlreadyExistGuard = new GuardDefaultExistsRequest(request.Name, request.Id, request.CompanyId);
                var existResult = _nonEmployeeDefaultAlreadyExistGuard.Execute(nonEmployeeDefaultAlreadyExistGuard);

                if (existResult.Exists)
                {
                    return CompanyDefaultSaveResponse.CompanyDefaultMatches(existResult.MatchingResults);
                }
            }

            return _nonEmployeeService.SaveNonEmployee(request);
        }
        public override CompanyDefaultSaveResponse Execute(SaveCompanyDefaultViewModel viewModel, Guid userId)
        {
            var request = new SaveCompanyDefaultRequest(viewModel.CompanyDefaultId, viewModel.CompanyDefaultValue,
                                            viewModel.CompanyId, viewModel.RiskAssessmentId, viewModel.RunMatchCheck,
                                            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.SavePeopleAtRisk(request);
            return CompanyDefaultSaveResponse.CreateSavedSuccessfullyResponse(result);
        }
        public override CompanyDefaultSaveResponse Execute(SaveCompanyDefaultViewModel viewModel, Guid userId)
        {
            var request = new SaveCompanyDefaultRequest(viewModel.CompanyDefaultId, viewModel.CompanyDefaultValue,
                                           viewModel.CompanyId, viewModel.RiskAssessmentId, viewModel.RunMatchCheck,
                                           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);
                }
            }

            if(request.Id == 0)
            {
                var result = _suppliersService.CreateSupplier(new SaveSupplierRequest()
                                                                  {
                                                                      Name = request.Name,
                                                                      CompanyId = request.CompanyId,
                                                                      UserId = request.UserId
                                                                  });

                return CompanyDefaultSaveResponse.CreateSavedSuccessfullyResponse(result);
            }

            _suppliersService.UpdateSupplier(new SaveSupplierRequest()
                                                {
                                                    Id = request.Id,
                                                    Name = request.Name,
                                                    CompanyId = request.CompanyId,
                                                    UserId = request.UserId
                                                });

            return CompanyDefaultSaveResponse.CreateSavedSuccessfullyResponse(request.Id);
        }