public void Validate__Description_is_null_or_empty__Should_be_invalid([Values(null, "")] string description) { var invalidTicketTariffDto = new TicketTariffDto { Description = description }; _validator.ShouldHaveValidationErrorFor(x => x.Description, invalidTicketTariffDto); }
public void Validate__Description_has_less_than_256_characters__Should_be_valid() { var validTicketTariffDto = new TicketTariffDto { Description = "123456789" }; _validator.ShouldNotHaveValidationErrorFor(x => x.Description, validTicketTariffDto); }
public void Validate__DefaultPrice_is_greater_than_0_and_less_than_1000__Should_be_valid() { var validTicketTariffDto = new TicketTariffDto { DefaultPrice = 100.0f }; _validator.ShouldNotHaveValidationErrorFor(x => x.DefaultPrice, validTicketTariffDto); }
public void Validate__DefaultPrice_is_exactly_1000__Should_be_valid() { var validTicketTariffDto = new TicketTariffDto { DefaultPrice = 1000.0f }; _validator.ShouldNotHaveValidationErrorFor(x => x.DefaultPrice, validTicketTariffDto); }
public void Validate__DefaultPrice_is_greater_than_1000__Should_be_invalid() { var invalidTicketTariffDto = new TicketTariffDto { DefaultPrice = 3400.0f }; _validator.ShouldHaveValidationErrorFor(x => x.DefaultPrice, invalidTicketTariffDto); }
public void Validate__DefaultPrice_is_less_than_0_or_equals_to_0__Should_be_invalid([Values(-1.0f, 0.0f)] float price) { var invalidTicketTariffDto = new TicketTariffDto { DefaultPrice = price }; _validator.ShouldHaveValidationErrorFor(x => x.DefaultPrice, invalidTicketTariffDto); }
public void Validate__Description_has_exactly_256_characters__Should_be_valid() { var validTicketTariffDto = new TicketTariffDto { Description = "1234567890123456789012345678901123456789012345678901234567890112345678901234567890123456789011234567890123456789012345678901" + "123456789012345678901234567890112345678901234567890123456789011234567890123456789012345678901123456789012345678901234567890123456789" }; validTicketTariffDto.Description.Length.Should().Be(256); _validator.ShouldNotHaveValidationErrorFor(x => x.Description, validTicketTariffDto); }
public void Validate__Description_has_more_than_256_characters__Should_be_invalid() { var invalidTicketTariffDto = new TicketTariffDto { Description = "1234567890123456789012345678901123456789012345678901234567890112345678901234567890123456789011234567890123456789012345678901" + "1234567890123456789012345678901123456789012345678901234567890112345678901234567890123456789011234567890123456789012345678901" + "1234567890123456789012345678901123456789012345678901234567890112345678901234567890123456789011234567890123456789012345678901" }; invalidTicketTariffDto.Description.Length.Should().BeGreaterThan(256); _validator.ShouldHaveValidationErrorFor(x => x.Description, invalidTicketTariffDto); }
public async Task <IActionResult> AddVisitsTicketTariffAsync(string visitTariffId, [FromBody] TicketTariffDto ticketTariff) { _logger.LogInformation($"Starting method '{nameof(AddVisitsTicketTariffAsync)}'."); if (string.IsNullOrEmpty(visitTariffId)) { return(OnInvalidParameterError($"Parameter '{nameof(visitTariffId)}' cannot be null or empty.")); } TicketTariff ticketTariffToBeAdded = null; VisitTariff visitTariff = null; try { visitTariff = await _visitTariffDbService.GetAsync(visitTariffId); // Ignore Id if the client set it. Id of entity is set internally by the server. ticketTariff.Id = null; ticketTariffToBeAdded = MapToDomainModel(ticketTariff); var addedTicketTariff = await _ticketTariffDbService.RestrictedAddAsync(ticketTariffToBeAdded); // Add new ticket tariff to parent visit tariff. visitTariff.TicketTariffs.Add(addedTicketTariff); await _visitTariffDbService.RestrictedUpdateAsync(visitTariff); // Reverse map only for response to the client. var addedTariffDto = MapToDto(addedTicketTariff); var response = new ResponseWrapper(addedTariffDto); string addedTicketTariffUrl = $"{ControllerPrefix}/{addedTicketTariff.Id}"; _logger.LogInformation($"Finished method '{nameof(AddVisitsTicketTariffAsync)}'."); return(Created(addedTicketTariffUrl, response)); } catch (InvalidOperationException ex) when(visitTariff is null) { return(OnNotFoundError($"Cannot found '{typeof(VisitTariff).Name}' with specified id: '{visitTariffId}'.", ex)); } catch (InvalidOperationException ex) { return(OnInvalidParameterError($"Element '{typeof(TicketTariff).Name}' already exists.", ex)); } catch (InternalDbServiceException ex) { LogInternalDbServiceException(ex, _ticketTariffDbService.GetType()); throw; } catch (Exception ex) { LogUnexpectedException(ex); throw; } }
private TicketTariff MapToDomainModel(TicketTariffDto tariffDto) => _mapper.Map <TicketTariff>(tariffDto);
public async Task <IActionResult> UpdateVisitsTicketTariffAsync(string visitTariffId, string ticketTariffId, [FromBody] TicketTariffDto ticketTariff) { _logger.LogInformation($"Starting method '{nameof(UpdateVisitsTicketTariffAsync)}'."); if (string.IsNullOrEmpty(visitTariffId) || string.IsNullOrEmpty(ticketTariffId)) { return(OnInvalidParameterError($"Arguments '{nameof(visitTariffId)}' and '{nameof(ticketTariffId)}' cannot be null or empty.")); } if (!ticketTariffId.Equals(ticketTariff.Id)) { return(OnMismatchParameterError($"An '{nameof(ticketTariffId)}' in URL end field '{nameof(ticketTariff.Id)}' in request body mismatches. Value in URL: '{ticketTariffId}'. " + $"Value in body: '{ticketTariff.Id}'.")); } VisitTariff parentVisitTariff = null; try { parentVisitTariff = await _visitTariffDbService.GetAsync(visitTariffId); var ticketTariffToBeUpdated = MapToDomainModel(ticketTariff); var updatedTicketTariff = await _ticketTariffDbService.RestrictedUpdateAsync(ticketTariffToBeUpdated); // Update parent VisitTariff by adding parentVisitTariff.TicketTariffs.Add(updatedTicketTariff); await _visitTariffDbService.RestrictedUpdateAsync(parentVisitTariff); // Revers map for client response. var updatedTicketTariffDto = MapToDto(updatedTicketTariff); var response = new ResponseWrapper(updatedTicketTariffDto); _logger.LogInformation($"Finished method '{nameof(UpdateVisitsTicketTariffAsync)}'"); return(Ok(response)); } catch (InvalidOperationException ex) when(parentVisitTariff is null) { return(OnNotFoundError($"Cannot found '{typeof(VisitTariff).Name}' with specified id: '{visitTariffId}'.", ex)); } catch (InvalidOperationException ex) { return(OnNotFoundError($"Cannot found '{typeof(TicketTariff).Name}' with specified id: '{ticketTariffId}'.", ex)); } catch (InternalDbServiceException ex) { LogInternalDbServiceException(ex, _ticketTariffDbService.GetType()); throw; } catch (Exception ex) { LogUnexpectedException(ex); throw; } }