public void ValidateClashExceptionSameStructureRulesViolation( ClashException clashException, CustomValidationResult expectedResult ) { _ = _fakeClashRepository .Setup(r => r.FindByExternal(It.IsAny <string>())) .Returns <string>(externalIdentifier => ClashExceptionValidationTestData.BunchOfClashes.Where(c => c.Externalref == externalIdentifier) ); var result = _clashExceptionValidations.ValidateClashExceptionForSameStructureRulesViolation(clashException); Assert.Multiple(() => { Assert.AreEqual(result.Successful, expectedResult.Successful); Assert.AreEqual(result.Message, expectedResult.Message); }); }
private void ValidateForSave(List <ClashException> incomingClashExceptions) { foreach (var clashException in incomingClashExceptions) { var structureRulesViolationValidationResult = _clashExceptionValidations.ValidateClashExceptionForSameStructureRulesViolation(clashException); if (!structureRulesViolationValidationResult.Successful) { throw new DataSyncException(DataSyncErrorCode.ClashException_StructureRulesViolation, structureRulesViolationValidationResult.Message); } } const int offsetHours = 6; var existingClashExceptions = _clashExceptionRepository.GetActive().ToList(); var timeRangesValidationResult = _clashExceptionValidations.ValidateTimeRanges(incomingClashExceptions, offsetHours, existingClashExceptions); if (!timeRangesValidationResult.Successful) { throw new DataSyncException(DataSyncErrorCode.ClashException_TimeRangesOverlap, timeRangesValidationResult.Message); } }