public ZoneValidationRequest CreateModifyZoneRequest( ZoneValidationRequest zoneValidationRequest, string requestPersonId) { var dbZone = _zoneService.GetZoneById(zoneValidationRequest.TargetZoneId); if (dbZone == null) { throw new ArgumentOutOfRangeException(nameof(dbZone.Id), "Invalid ZoneId."); } if (dbZone.OwnerId != requestPersonId) { throw new ArgumentOutOfRangeException(nameof(dbZone.Id), "You haven't permissions to modify this zone."); } var zoneRequests = _zoneValidationRequestRepository.FindByZoneId(dbZone.Id); if (zoneRequests.Any(x => x.Status < ZoneValidationStatus.Declined)) { throw new ArgumentOutOfRangeException(nameof(dbZone.Id), "Cannot add modifying request while has another active one for this zone."); } zoneValidationRequest.RequesterId = requestPersonId; return(_zoneValidationRequestRepository.Add(zoneValidationRequest)); }
public ZoneValidationRequest CreateNewZoneRequest( ZoneValidationRequest zoneValidationRequest, string requestPersonId) { zoneValidationRequest.RequesterId = requestPersonId; return(_zoneValidationRequestRepository.Add(zoneValidationRequest)); }
public void Should_Throw_Exception_On_Invalid_Zone_Id_On_Modify(String targetZoneId) { IZoneValidationRequestRepository zoneValidationRequestRepository = new Mock <IZoneValidationRequestRepository>().Object; Mock <IZoneService> zoneServiceMock = new Mock <IZoneService>(); zoneServiceMock.Setup(_ => _.GetZoneById(targetZoneId, null)).Returns((Zone)null); ZoneValidationRequestService validationService = new ZoneValidationRequestService(zoneValidationRequestRepository, zoneServiceMock.Object); ZoneValidationRequest request = new ZoneValidationRequest { TargetZoneId = targetZoneId }; Assert.Throws <ArgumentOutOfRangeException>(() => validationService.CreateModifyZoneRequest(request, String.Empty)); }